<?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>189546</bug_id>
          
          <creation_ts>2018-09-12 07:22:27 -0700</creation_ts>
          <short_desc>Add enterkeyhint support</short_desc>
          <delta_ts>2019-10-29 12:40:31 -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>DOM</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="David Tapuska">dave+webkit</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eoconnor</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1458930</commentid>
    <comment_count>0</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2018-09-12 07:22:27 -0700</bug_when>
    <thetext>Pull request https://github.com/whatwg/html/pull/3538 adds support for enterkeylabel.

This provides a mechanism to configure the enter key icon/label on the web.

Please consider supporting this in Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458941</commentid>
    <comment_count>1</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2018-09-12 08:17:14 -0700</bug_when>
    <thetext>s/enterkeylabel/enterkeyhint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458944</commentid>
    <comment_count>2</comment_count>
    <who name="David Tapuska">dave+webkit</who>
    <bug_when>2018-09-12 08:20:30 -0700</bug_when>
    <thetext>Example:
http://output.jsbin.com/mukira</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538148</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-22 02:54:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/51021148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584808</commentid>
    <comment_count>4</comment_count>
      <attachid>382150</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-28 19:45:33 -0700</bug_when>
    <thetext>Created attachment 382150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584809</commentid>
    <comment_count>5</comment_count>
      <attachid>382151</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-28 19:57:11 -0700</bug_when>
    <thetext>Created attachment 382151
Fix GTK/WPE builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585029</commentid>
    <comment_count>6</comment_count>
      <attachid>382151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-29 12:30:16 -0700</bug_when>
    <thetext>Comment on attachment 382151
Fix GTK/WPE builds

Rejecting attachment 382151 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 382151, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=382151&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=189546&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 382151 from bug 189546.
Fetching: https://bugs.webkit.org/attachment.cgi?id=382151
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 10 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/Headers.cmake
patching file Source/WebKit/Shared/FocusedElementInformation.cpp
patching file Source/WebKit/Shared/FocusedElementInformation.h
patching file Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
patching file Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
patching file Tools/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
Hunk #1 succeeded at 1032 (offset 1 line).
Hunk #2 FAILED at 1460.
Hunk #3 succeeded at 2557 (offset 1 line).
Hunk #4 succeeded at 3137 (offset 1 line).
Hunk #5 succeeded at 4568 (offset 2 lines).
1 out of 5 hunks FAILED -- saving rejects to file Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj.rej
patching file Tools/TestWebKitAPI/Tests/ios/EnterKeyHintTests.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13188930</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585032</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-29 12:40:31 -0700</bug_when>
    <thetext>Landed: https://trac.webkit.org/changeset/251720/webkit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382150</attachid>
            <date>2019-10-28 19:45:33 -0700</date>
            <delta_ts>2019-10-28 19:57:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189546-20191028194532.patch</filename>
            <type>text/plain</type>
            <size>19965</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY5MmMxOWM1MWZmN2EyODBh
N2ZkMTU2MWZlNjE5ZjA2OGUzMjRjNWUuLjU5MWIyNzQ2ZGExMDI2MDkwM2RmMjRlYzJhZTY4YmJh
NTgwOTIwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMTAtMjcgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGVudGVya2V5aGlu
dCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODk1NDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMDIxMTQ4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBw
b3J0IGZvciB0aGUgZW50ZXJrZXloaW50IEhUTUwgYXR0cmlidXRlIG9uIGlPUy4KKworICAgICAg
ICBUZXN0czogIEVudGVyS2V5SGludFRlc3RzLkVudGVyS2V5SGludEluQ29udGVudEVkaXRhYmxl
RWxlbWVudAorICAgICAgICAgICAgICAgIEVudGVyS2V5SGludFRlc3RzLkVudGVyS2V5SGludElu
VGV4dElucHV0CisgICAgICAgICAgICAgICAgRW50ZXJLZXlIaW50VGVzdHMuRW50ZXJLZXlIaW50
SW5UZXh0QXJlYQorCisgICAgICAgICogU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmg6CisKKyAg
ICAgICAgQWRkIGEgbmV3IGZsYWcgdG8gRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiB0byBpbmRp
Y2F0ZSB0aGUgRW50ZXJLZXlIaW50IHR5cGUgdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVuIGJyaW5n
aW5nCisgICAgICAgIHVwIGFuIGlucHV0IHZpZXcgZm9yIHRoZSBmb2N1c2VkIGVsZW1lbnQuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyB0ZXh0SW5wdXRUcmFpdHNdKToKKworICAgICAgICBNYXAg
dGhlIGdpdmVuIEVudGVyS2V5SGludCB0eXBlIHRvIGEgVUlSZXR1cm5LZXlUeXBlLiBJZiBhbiB1
bnN1cHBvcnRlZCAoaS5lLiAicHJldmlvdXMiKSBvciBkZWZhdWx0CisgICAgICAgIEVudGVyS2V5
SGludCB2YWx1ZSBpcyB1c2VkLCB0aGVuIHdlIGZhbGwgYmFjayB0byBleGlzdGluZyBiZWhhdmlv
ciB3aGljaCBkZWR1Y2VzIHRoZSBkZWZhdWx0IGVudGVya2V5aGludCB2YWx1ZQorICAgICAgICBm
cm9tIHRoZSBpbnB1dCB0eXBlIGlmIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgaW5zaWRlIGFuIGFj
dGlvbmFibGUgZm9ybTsgb3RoZXJ3aXNlLCB3ZSBhdm9pZCBzZXR0aW5nIGFueSB2YWx1ZQorICAg
ICAgICBmb3IgdGhlIGByZXR1cm5LZXlUeXBlYCwgZGVmYXVsdGluZyB0byBgVUlSZXR1cm5LZXlE
ZWZhdWx0YC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bik6CisKIDIwMTktMTAtMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVwbGFjZSBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5ub2Rl
QXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQgd2l0aCBhbiBlbGVtZW50IGNvbnRleHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKaW5k
ZXggZDVhYTMxZDA3NzZiMWFmNzg4YWIwYmZkZTY4Y2RhZmEzZTdkZDNkZC4uMTlmNDM3NWMwYTZl
NThlYjE4NTQ5N2Y0MDE2ODNkNmRkYzY3MzRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgdm9p
ZCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRW51bShhdXRvY2FwaXRhbGl6ZVR5cGUpOwogICAg
IGVuY29kZXIuZW5jb2RlRW51bShlbGVtZW50VHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVt
KGlucHV0TW9kZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGVudGVyS2V5SGludCk7CiAgICAg
ZW5jb2RlciA8PCBmb3JtQWN0aW9uOwogICAgIGVuY29kZXIgPDwgc2VsZWN0T3B0aW9uczsKICAg
ICBlbmNvZGVyIDw8IHNlbGVjdGVkSW5kZXg7CkBAIC0xNjIsNiArMTYzLDkgQEAgYm9vbCBGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBGb2N1
c2VkRWxlbWVudEluZm8KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuaW5wdXRN
b2RlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocmVzdWx0LmVudGVyS2V5SGludCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmZvcm1BY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5m
b3JtYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24uaAppbmRleCA1ZmFjZmUxYTQxZDMwNWNjOGMyMThkMjUwMjU3NDhjYjg0MjFlNjNjLi5iODUz
Y2QxZTQ0ZmZkMmZiMmNmOWU3ODVhMDY3OGFlOTg1M2FkNTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRvZmlsbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9FbnRlcktleUhpbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgpAQCAtMTE4LDYgKzExOSw3IEBAIHN0cnVjdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIHsK
ICAgICBBdXRvY2FwaXRhbGl6ZVR5cGUgYXV0b2NhcGl0YWxpemVUeXBlIHsgQXV0b2NhcGl0YWxp
emVUeXBlRGVmYXVsdCB9OwogICAgIElucHV0VHlwZSBlbGVtZW50VHlwZSB7IElucHV0VHlwZTo6
Tm9uZSB9OwogICAgIFdlYkNvcmU6OklucHV0TW9kZSBpbnB1dE1vZGUgeyBXZWJDb3JlOjpJbnB1
dE1vZGU6OlVuc3BlY2lmaWVkIH07CisgICAgV2ViQ29yZTo6RW50ZXJLZXlIaW50IGVudGVyS2V5
SGludCB7IFdlYkNvcmU6OkVudGVyS2V5SGludDo6VW5zcGVjaWZpZWQgfTsKICAgICBTdHJpbmcg
Zm9ybUFjdGlvbjsKICAgICBWZWN0b3I8T3B0aW9uSXRlbT4gc2VsZWN0T3B0aW9uczsKICAgICBp
bnQgc2VsZWN0ZWRJbmRleCB7IC0xIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4OTU3MjI3OTE4MDE0
ODAyNThjY2IxMzA0ZTEzMmY0ZjY5ZDQzYzFhLi45YmEzNzU4YTgxNjc1ZDU0Nzg5Nzc3MTM2MGMx
Y2I5ZjU2M2Q5MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ3MDksOCArNDcwOSwzMCBAQCAtIChV
SVRleHRJbnB1dFRyYWl0cyAqKXRleHRJbnB1dFRyYWl0cwogICAgIFtfdHJhaXRzIHNldFNlY3Vy
ZVRleHRFbnRyeTpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBXZWJL
aXQ6OklucHV0VHlwZTo6UGFzc3dvcmQgfHwgW19mb3JtSW5wdXRTZXNzaW9uIGZvcmNlU2VjdXJl
VGV4dEVudHJ5XV07CiAgICAgW190cmFpdHMgc2V0U2hvcnRjdXRDb252ZXJzaW9uVHlwZTpfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6
UGFzc3dvcmQgPyBVSVRleHRTaG9ydGN1dENvbnZlcnNpb25UeXBlTm8gOiBVSVRleHRTaG9ydGN1
dENvbnZlcnNpb25UeXBlRGVmYXVsdF07CiAKLSAgICBpZiAoIV9mb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmZvcm1BY3Rpb24uaXNFbXB0eSgpKQotICAgICAgICBbX3RyYWl0cyBzZXRSZXR1cm5L
ZXlUeXBlOihfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBXZWJLaXQ6
OklucHV0VHlwZTo6U2VhcmNoKSA/IFVJUmV0dXJuS2V5U2VhcmNoIDogVUlSZXR1cm5LZXlHb107
CisgICAgc3dpdGNoIChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbnRlcktleUhpbnQpIHsK
KyAgICBjYXNlIFdlYkNvcmU6OkVudGVyS2V5SGludDo6RW50ZXI6CisgICAgICAgIFtfdHJhaXRz
IHNldFJldHVybktleVR5cGU6VUlSZXR1cm5LZXlEZWZhdWx0XTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpFbnRlcktleUhpbnQ6OkRvbmU6CisgICAgICAgIFtfdHJhaXRzIHNl
dFJldHVybktleVR5cGU6VUlSZXR1cm5LZXlEb25lXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJDb3JlOjpFbnRlcktleUhpbnQ6OkdvOgorICAgICAgICBbX3RyYWl0cyBzZXRSZXR1cm5L
ZXlUeXBlOlVJUmV0dXJuS2V5R29dOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6
OkVudGVyS2V5SGludDo6TmV4dDoKKyAgICAgICAgW190cmFpdHMgc2V0UmV0dXJuS2V5VHlwZTpV
SVJldHVybktleU5leHRdOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkVudGVy
S2V5SGludDo6U2VhcmNoOgorICAgICAgICBbX3RyYWl0cyBzZXRSZXR1cm5LZXlUeXBlOlVJUmV0
dXJuS2V5U2VhcmNoXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpFbnRlcktl
eUhpbnQ6OlNlbmQ6CisgICAgICAgIFtfdHJhaXRzIHNldFJldHVybktleVR5cGU6VUlSZXR1cm5L
ZXlTZW5kXTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoIV9m
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmZvcm1BY3Rpb24uaXNFbXB0eSgpKQorICAgICAgICAg
ICAgW190cmFpdHMgc2V0UmV0dXJuS2V5VHlwZTpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5l
bGVtZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6U2VhcmNoID8gVUlSZXR1cm5LZXlTZWFy
Y2ggOiBVSVJldHVybktleUdvXTsKKyAgICB9CisgICAgfQogCiAgICAgaWYgKF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpQYXNzd29y
ZCB8fCBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBXZWJLaXQ6Oklu
cHV0VHlwZTo6RW1haWwgfHwgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUg
PT0gV2ViS2l0OjpJbnB1dFR5cGU6OlVSTCB8fCBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5m
b3JtQWN0aW9uLmNvbnRhaW5zKCJsb2dpbiIpKSB7CiAgICAgICAgIFtfdHJhaXRzIHNldEF1dG9j
YXBpdGFsaXphdGlvblR5cGU6VUlUZXh0QXV0b2NhcGl0YWxpemF0aW9uVHlwZU5vbmVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCBkNjIzODEwZjQxNDQ5YzgxMGRkMmZlNWNmMTFhNzVmZTJiODM1NWRkLi4xYzAyYWRiMDFi
ODk1OTc3NTgxYzk5ZTk2MjM5OTYwOTBlZjVhM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk4Nyw2ICsyOTg3LDcg
QEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICAgICAgaW5mb3JtYXRpb24uYXV0b2ZpbGxG
aWVsZE5hbWUgPSBXZWJDb3JlOjp0b0F1dG9maWxsRmllbGROYW1lKGVsZW1lbnQuYXV0b2ZpbGxE
YXRhKCkuZmllbGROYW1lKTsKICAgICAgICAgaW5mb3JtYXRpb24ucGxhY2Vob2xkZXIgPSBlbGVt
ZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGFjZWhvbGRl
ckF0dHIpOwogICAgICAgICBpbmZvcm1hdGlvbi5pbnB1dE1vZGUgPSBlbGVtZW50LmNhbm9uaWNh
bElucHV0TW9kZSgpOworICAgICAgICBpbmZvcm1hdGlvbi5lbnRlcktleUhpbnQgPSBlbGVtZW50
LmNhbm9uaWNhbEVudGVyS2V5SGludCgpOwogICAgIH0gZWxzZSBpZiAoaXM8SFRNTElucHV0RWxl
bWVudD4oKm1fZm9jdXNlZEVsZW1lbnQpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqbV9mb2N1c2VkRWxlbWVudCk7CiAg
ICAgICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGVsZW1lbnQuZm9ybSgpOwpAQCAtMzA0OCw2
ICszMDQ5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKEZv
Y3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICAgICAgaW5mb3JtYXRpb24u
aGFzU3VnZ2VzdGlvbnMgPSAhIWVsZW1lbnQubGlzdCgpOwogI2VuZGlmCiAgICAgICAgIGluZm9y
bWF0aW9uLmlucHV0TW9kZSA9IGVsZW1lbnQuY2Fub25pY2FsSW5wdXRNb2RlKCk7CisgICAgICAg
IGluZm9ybWF0aW9uLmVudGVyS2V5SGludCA9IGVsZW1lbnQuY2Fub25pY2FsRW50ZXJLZXlIaW50
KCk7CiAgICAgICAgIGluZm9ybWF0aW9uLmlzUmVhZE9ubHkgPSBlbGVtZW50LmlzUmVhZE9ubHko
KTsKICAgICAgICAgaW5mb3JtYXRpb24udmFsdWUgPSBlbGVtZW50LnZhbHVlKCk7CiAgICAgICAg
IGluZm9ybWF0aW9uLnZhbHVlQXNOdW1iZXIgPSBlbGVtZW50LnZhbHVlQXNOdW1iZXIoKTsKQEAg
LTMwNjIsNiArMzA2NCw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Rm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbihGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBpbmZvcm1hdGlvCiAgICAgICAgICAgICBp
bmZvcm1hdGlvbi5pc0F1dG9jb3JyZWN0ID0gZm9jdXNlZEVsZW1lbnQuc2hvdWxkQXV0b2NvcnJl
Y3QoKTsKICAgICAgICAgICAgIGluZm9ybWF0aW9uLmF1dG9jYXBpdGFsaXplVHlwZSA9IGZvY3Vz
ZWRFbGVtZW50LmF1dG9jYXBpdGFsaXplVHlwZSgpOwogICAgICAgICAgICAgaW5mb3JtYXRpb24u
aW5wdXRNb2RlID0gZm9jdXNlZEVsZW1lbnQuY2Fub25pY2FsSW5wdXRNb2RlKCk7CisgICAgICAg
ICAgICBpbmZvcm1hdGlvbi5lbnRlcktleUhpbnQgPSBmb2N1c2VkRWxlbWVudC5jYW5vbmljYWxF
bnRlcktleUhpbnQoKTsKICAgICAgICAgICAgIGluZm9ybWF0aW9uLnNob3VsZFN5bnRoZXNpemVL
ZXlFdmVudHNGb3JFZGl0aW5nID0gZm9jdXNlZEVsZW1lbnQuZG9jdW1lbnQoKS5zZXR0aW5ncygp
LnN5bnRoZXRpY0VkaXRpbmdDb21tYW5kc0VuYWJsZWQoKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGluZm9ybWF0aW9uLmlzQXV0b2NvcnJlY3QgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDliY2Q5OTMyZmVlNTRlZWRk
MjFlMjJjMGFlMTc1NjVmOWIzY2MzMTYuLmU0MzQwZTVjY2RmNGYzOTNlZGE3YTBmOTFlZTI4MWQ4
NDNjMWZmYWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZW50ZXJrZXloaW50IHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTU0NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTEwMjExNDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBBUEkgdGVzdHMgdG8gY2hlY2sgdGhlIHJlc3Vs
dGluZyBVSVJldHVybktleVR5cGUgdGhhdCBnZXRzIHNldCBvbiB0ZXh0IGlucHV0IHRyYWl0cyBp
biB0aGUgVUkgcHJvY2VzcywKKyAgICAgICAgZ2l2ZW4gdGhlIGRpZmZlcmVudCB2YWx1ZXMgZm9y
ICJlbnRlcmtleWhpbnQiLiBBbHNvIHZlcmlmaWVzIHRoYXQgdGhlIGRlZmF1bHQgYmVoYXZpb3Jz
IG9mIHNlYXJjaCBmaWVsZHMgYW5kCisgICAgICAgIHRleHQgaW5wdXQgZmllbGRzIGluc2lkZSBh
Y3Rpb25hYmxlIGZvcm0gZWxlbWVudHMgaXMgdG8gc2hvdyAiU2VhcmNoIiBvciAiR28iIGFzIHRo
ZSByZXR1cm4ga2V5IGJ5IGRlZmF1bHQsCisgICAgICAgIHVubGVzcyBhIGRpZmZlcmVudCB2YWx1
ZSBmb3IgImVudGVya2V5aGludCIgaXMgc3BlY2lmaWVkLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRW50ZXJLZXlIaW50VGVzdHMubW06IEFkZGVkLgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHRlc3Q6ZW50ZXJLZXlIaW50OnJldHVybktleVR5cGU6XSk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjplbnRlcktleUhpbnRUZXN0Q2FzZXMpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlV2ViVmlld0FuZElucHV0RGVsZWdhdGVGb3JUZXN0aW5n
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTEwLTI4ICBLYXRlIENo
ZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIG15c2Vs
ZiBhcyBhIGNvbW1pdHRlci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjgxZWIxMmNiNGM1
Yjg2ZDk0Y2RkMDM2OGQ1MmU4MDMxYjIyNzcyOC4uNDY5MWQ4YzdhOTE5Njg4YTY3N2RhZDJkZWUw
MzM0YzM4YWMzN2IxYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzEsNiArMTAzMSw3
IEBACiAJCUY0Qzg3OTdGMjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Qzg3OTdF
MjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSAqLzsgfTsKIAkJRjRD
RDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3luYy1zY3JpcHQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENENzRD
NTIwRkRBQ0Y1MDBERTM3OTQgLyogdGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sICovOyB9Owog
CQlGNENENzRDOTIwRkRCNDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNENENzRDODIwRkRC
NDk2MDBERTM3OTQgLyogVGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi87IH07CisJCUY0Q0YzMjgw
MjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0YzMjdGMjM2NjU1MjIwMEQzQUQwNyAv
KiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLzsgfTsKIAkJRjREMjk4NkUyMEZFRTczNzAwOTJENjM2
IC8qIFJ1blNjcmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNj
cmlwdEFmdGVyRG9jdW1lbnRMb2FkLm1tICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3
NjcgLyogRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRHJhZ0Fu
ZERyb3BTaW11bGF0b3JJT1MubW0gKi87IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAv
KiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVz
dHNJT1MubW0gKi87IH07CkBAIC0xNDU4LDcgKzE0NTksNiBAQAogCQkJCTU3NjYzREVBMjM0RUE2
NkQwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCi0J
CQkJNTc5ODMzN0UyMzYwMTlBNDAwOEU1NTQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODYxQzg5
MjU5RDAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1
MTcxNEVCNDFDRjhDNzhDMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTEuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MTcxNEVCNTFDRjhDNzhDMDA0NzIzQzQgLyog
V2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAg
LTI1NTYsNiArMjU1Niw3IEBACiAJCUY0Q0Q3NEM3MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJM
U2NoZW1lSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0VVJMU2NoZW1lSGFuZGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNENENzRDODIwRkRCNDk2MDBERTM3OTQgLyog
VGVzdFVSTFNjaGVtZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0VVJMU2No
ZW1lSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDREFCMzMyMjQ4
OUZFMTAwNTdBMkQ5IC8qIElQYWRVc2VySW50ZXJmYWNlU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSVBhZFVzZXJJbnRlcmZhY2VTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNENGMzI3RjIzNjY1NTIyMDBEM0FEMDcgLyogRW50ZXJLZXlIaW50VGVzdHMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBFbnRlcktleUhpbnRUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjREMjk4NkQyMEZFRTczNzAwOTJENjM2IC8qIFJ1blNjcmlwdEFmdGVy
RG9jdW1lbnRMb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuU2NyaXB0QWZ0ZXJEb2N1
bWVudExvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I0MUU0RTJC
Q0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRHJh
Z0FuZERyb3BUZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdBbmREcm9wVGVzdHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zMTM1LDYgKzMxMzYsNyBAQAogCQkJCUY0MkQ2MzQzMjJBMTcyOUYwMEQyRkIzQSAvKiBBdXRv
Y29ycmVjdGlvblRlc3RzSU9TLm1tICovLAogCQkJCTQ0MDc3QkIwMjMxNDQ5RDIwMDE3OUUyRCAv
KiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5tbSAqLywKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3
NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLywKKwkJCQlGNENGMzI3RjIzNjY1NTIyMDBE
M0FEMDcgLyogRW50ZXJLZXlIaW50VGVzdHMubW0gKi8sCiAJCQkJRjRCQzBCMTMyMTQ2Qzg0OTAw
MkEwNDc4IC8qIEZvY3VzUHJlc2VydmF0aW9uVGVzdHMubW0gKi8sCiAJCQkJQ0RBOTNEQUMyMkY0
RUMyMjAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1Rlc3RzLmNwcCAqLywK
IAkJCQlGNDVFMTU3MjIxMTJDRTI5MDAzMDdFODIgLyogS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1t
ICovLApAQCAtNDU2NCw2ICs0NTY2LDcgQEAKIAkJCQk3Q0NFN0VFMDFBNDExQTlBMDA0NDdDNEMg
LyogRWRpdG9yQ29tbWFuZHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDREMDY0NzFGMzk2MjdB
MDAxQTBFMjkgLyogRWRpdG9yU3RhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUJGMUE0MTFBN0UwMDQ0N0M0QyAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gaW4gU291
cmNlcyAqLywKKwkJCQlGNENGMzI4MDIzNjY1NTIyMDBEM0FEMDcgLyogRW50ZXJLZXlIaW50VGVz
dHMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzQ5MkIzQjFERjhCMTRDMDA2MzNERTEgLyogRW51
bWVyYXRlTWVkaWFEZXZpY2VzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OEQ3RTQ3MUVBNkM1
NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVtZXJhbFNlc3Npb25QdXNoU3Rh
dGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0VudGVyS2V5SGludFRlc3RzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRW50ZXJLZXlIaW50VGVzdHMubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk2
MzM0YTdkMTY2MDNiM2UxMTBkY2IwOGJiODcxNWUxNjM0MzkxZQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0VudGVyS2V5SGludFRlc3RzLm1tCkBAIC0w
LDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJUZXN0SW5wdXREZWxlZ2F0ZS5oIgorI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5wdXREZWxlZ2F0ZS5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK0BpbnRlcmZhY2UgVGVzdFdLV2Vi
VmlldyAoRW50ZXJLZXlIaW50VGVzdHMpCistICh2b2lkKXRlc3Q6KE5TU3RyaW5nICopcXVlcnlT
ZWxlY3RvciBlbnRlcktleUhpbnQ6KE5TU3RyaW5nICopZW50ZXJLZXlIaW50IHJldHVybktleVR5
cGU6KFVJUmV0dXJuS2V5VHlwZSlyZXR1cm5LZXlUeXBlOworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoRW50ZXJLZXlIaW50VGVzdHMpCisKKy0gKHZvaWQpdGVzdDooTlNT
dHJpbmcgKilxdWVyeVNlbGVjdG9yIGVudGVyS2V5SGludDooTlNTdHJpbmcgKillbnRlcktleUhp
bnQgcmV0dXJuS2V5VHlwZTooVUlSZXR1cm5LZXlUeXBlKXJldHVybktleVR5cGUKK3sKKyAgICBb
c2VsZiBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignJUAnKS5lbnRlcktleUhpbnQgPSAnJUAnIiwg
cXVlcnlTZWxlY3RvciwgZW50ZXJLZXlIaW50XV07CisgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2Ny
aXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignJUAnKS5mb2N1cygpIiwgcXVlcnlTZWxlY3Rv
cl1dOworICAgIEVYUEVDVF9FUShyZXR1cm5LZXlUeXBlLCBbc2VsZiB0ZXh0SW5wdXRDb250ZW50
Vmlld10udGV4dElucHV0VHJhaXRzLnJldHVybktleVR5cGUpOworICAgIFtzZWxmIGV2YWx1YXRl
SmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuYmx1cigpIl07Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkg
eworCit1c2luZyBFbnRlcktleUhpbnRUZXN0Q2FzZSA9IHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNT
dHJpbmc+LCBVSVJldHVybktleVR5cGU+OworCitWZWN0b3I8RW50ZXJLZXlIaW50VGVzdENhc2U+
IGVudGVyS2V5SGludFRlc3RDYXNlcyhVSVJldHVybktleVR5cGUgZmFsbGJhY2tSZXR1cm5LZXlU
eXBlID0gVUlSZXR1cm5LZXlEZWZhdWx0KQoreworICAgIHJldHVybiB7CisgICAgICAgIHsgQCIi
LCBmYWxsYmFja1JldHVybktleVR5cGUgfSwKKyAgICAgICAgeyBAImVudGVyIiwgVUlSZXR1cm5L
ZXlEZWZhdWx0IH0sCisgICAgICAgIHsgQCJkb25lIiwgVUlSZXR1cm5LZXlEb25lIH0sCisgICAg
ICAgIHsgQCJnbyIsIFVJUmV0dXJuS2V5R28gfSwKKyAgICAgICAgeyBAIm5leHQiLCBVSVJldHVy
bktleU5leHQgfSwKKyAgICAgICAgeyBAInByZXZpb3VzIiwgZmFsbGJhY2tSZXR1cm5LZXlUeXBl
IH0sCisgICAgICAgIHsgQCJzZWFyY2giLCBVSVJldHVybktleVNlYXJjaCB9LAorICAgICAgICB7
IEAic2VuZCIsIFVJUmV0dXJuS2V5U2VuZCB9CisgICAgfTsKK30KKworc3RhdGljIHN0ZDo6cGFp
cjxSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4sIFJldGFpblB0cjxUZXN0SW5wdXREZWxlZ2F0ZT4+
IGNyZWF0ZVdlYlZpZXdBbmRJbnB1dERlbGVnYXRlRm9yVGVzdGluZygpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdElucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbaW5wdXREZWxlZ2F0
ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6WyZdIChXS1dlYlZpZXcg
KiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIC0+IF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNz
aW9uUG9saWN5IHsKKyAgICAgICAgcmV0dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9s
aWN5QWxsb3c7CisgICAgfV07CisgICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6aW5wdXRE
ZWxlZ2F0ZS5nZXQoKV07CisgICAgcmV0dXJuIHsgV1RGTW92ZSh3ZWJWaWV3KSwgV1RGTW92ZShp
bnB1dERlbGVnYXRlKSB9OworfQorCitURVNUKEVudGVyS2V5SGludFRlc3RzLCBFbnRlcktleUhp
bnRJbkNvbnRlbnRFZGl0YWJsZUVsZW1lbnQpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZp
ZXc+IHdlYlZpZXc7CisgICAgUmV0YWluUHRyPFRlc3RJbnB1dERlbGVnYXRlPiBpbnB1dERlbGVn
YXRlOworICAgIHN0ZDo6dGllKHdlYlZpZXcsIGlucHV0RGVsZWdhdGUpID0gY3JlYXRlV2ViVmll
d0FuZElucHV0RGVsZWdhdGVGb3JUZXN0aW5nKCk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPGRpdiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Il07CisgICAgZm9y
IChhdXRvJiB0ZXN0IDogZW50ZXJLZXlIaW50VGVzdENhc2VzKCkpCisgICAgICAgIFt3ZWJWaWV3
IHRlc3Q6QCJkaXYiIGVudGVyS2V5SGludDp0ZXN0LmZpcnN0LmdldCgpIHJldHVybktleVR5cGU6
dGVzdC5zZWNvbmRdOworfQorCitURVNUKEVudGVyS2V5SGludFRlc3RzLCBFbnRlcktleUhpbnRJ
blRleHRJbnB1dCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldzsKKyAg
ICBSZXRhaW5QdHI8VGVzdElucHV0RGVsZWdhdGU+IGlucHV0RGVsZWdhdGU7CisgICAgc3RkOjp0
aWUod2ViVmlldywgaW5wdXREZWxlZ2F0ZSkgPSBjcmVhdGVXZWJWaWV3QW5kSW5wdXREZWxlZ2F0
ZUZvclRlc3RpbmcoKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
QCIiCisgICAgICAgICI8Zm9ybSBhY3Rpb249JyMnIG1ldGhvZD0ncG9zdCc+IgorICAgICAgICAi
ICAgIDxpbnB1dCBpZD0nb25lJyBuYW1lPSdmb28nIC8+IgorICAgICAgICAiICAgIDxpbnB1dCBp
ZD0ndHdvJyB0eXBlPSdzZWFyY2gnIG5hbWU9J2JhcicgLz4iCisgICAgICAgICIgICAgPGlucHV0
IHR5cGU9J3N1Ym1pdCcgdmFsdWU9J3Rlc3QnIC8+IgorICAgICAgICAiPC9mb3JtPiIKKyAgICAg
ICAgIjxpbnB1dCBpZD0ndGhyZWUnIC8+Il07CisKKyAgICBmb3IgKGF1dG8mIHRlc3QgOiBlbnRl
cktleUhpbnRUZXN0Q2FzZXMoVUlSZXR1cm5LZXlHbykpCisgICAgICAgIFt3ZWJWaWV3IHRlc3Q6
QCIjb25lIiBlbnRlcktleUhpbnQ6dGVzdC5maXJzdC5nZXQoKSByZXR1cm5LZXlUeXBlOnRlc3Qu
c2Vjb25kXTsKKworICAgIGZvciAoYXV0byYgdGVzdCA6IGVudGVyS2V5SGludFRlc3RDYXNlcyhV
SVJldHVybktleVNlYXJjaCkpCisgICAgICAgIFt3ZWJWaWV3IHRlc3Q6QCIjdHdvIiBlbnRlcktl
eUhpbnQ6dGVzdC5maXJzdC5nZXQoKSByZXR1cm5LZXlUeXBlOnRlc3Quc2Vjb25kXTsKKworICAg
IGZvciAoYXV0byYgdGVzdCA6IGVudGVyS2V5SGludFRlc3RDYXNlcygpKQorICAgICAgICBbd2Vi
VmlldyB0ZXN0OkAiI3RocmVlIiBlbnRlcktleUhpbnQ6dGVzdC5maXJzdC5nZXQoKSByZXR1cm5L
ZXlUeXBlOnRlc3Quc2Vjb25kXTsKK30KKworVEVTVChFbnRlcktleUhpbnRUZXN0cywgRW50ZXJL
ZXlIaW50SW5UZXh0QXJlYSkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dzsKKyAgICBSZXRhaW5QdHI8VGVzdElucHV0RGVsZWdhdGU+IGlucHV0RGVsZWdhdGU7CisgICAg
c3RkOjp0aWUod2ViVmlldywgaW5wdXREZWxlZ2F0ZSkgPSBjcmVhdGVXZWJWaWV3QW5kSW5wdXRE
ZWxlZ2F0ZUZvclRlc3RpbmcoKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8dGV4dGFyZWE+PC90ZXh0YXJlYT4iXTsKKyAgICBmb3IgKGF1dG8mIHRlc3QgOiBl
bnRlcktleUhpbnRUZXN0Q2FzZXMoKSkKKyAgICAgICAgW3dlYlZpZXcgdGVzdDpAInRleHRhcmVh
IiBlbnRlcktleUhpbnQ6dGVzdC5maXJzdC5nZXQoKSByZXR1cm5LZXlUeXBlOnRlc3Quc2Vjb25k
XTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382151</attachid>
            <date>2019-10-28 19:57:11 -0700</date>
            <delta_ts>2019-10-29 12:30:16 -0700</delta_ts>
            <desc>Fix GTK/WPE builds</desc>
            <filename>bug-189546-20191028195710.patch</filename>
            <type>text/plain</type>
            <size>21065</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJhM2ExZDdiMWQyZTFk
MzFlODJmZTAyMTYzZjYyNDAwZWNmZGM2NS4uY2EyMWJlNWIwMzVlODM5M2I1NDE3MDk4YzhkYjJl
YjE3MmFlMTBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTEwLTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBlbnRlcmtl
eWhpbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg5NTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTAyMTE0OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
IEFkZCBFbnRlcktleUhpbnQuaC4KKwogMjAxOS0xMC0yOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBKU1Byb21pc2VEZWZlcnJlZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA2OTJjMTljNTFmZjdhMjgwYTdmZDE1NjFmZTYxOWYwNjhlMzI0YzVlLi41OTFi
Mjc0NmRhMTAyNjA5MDNkZjI0ZWMyYWU2OGJiYTU4MDkyMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM2IEBACisyMDE5LTEwLTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBlbnRlcmtleWhpbnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NTQ2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81MTAyMTE0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGVudGVya2V5aGludCBIVE1M
IGF0dHJpYnV0ZSBvbiBpT1MuCisKKyAgICAgICAgVGVzdHM6ICBFbnRlcktleUhpbnRUZXN0cy5F
bnRlcktleUhpbnRJbkNvbnRlbnRFZGl0YWJsZUVsZW1lbnQKKyAgICAgICAgICAgICAgICBFbnRl
cktleUhpbnRUZXN0cy5FbnRlcktleUhpbnRJblRleHRJbnB1dAorICAgICAgICAgICAgICAgIEVu
dGVyS2V5SGludFRlc3RzLkVudGVyS2V5SGludEluVGV4dEFyZWEKKworICAgICAgICAqIFNoYXJl
ZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6Rm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5oOgorCisgICAgICAgIEFkZCBhIG5ldyBmbGFnIHRvIEZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24gdG8gaW5kaWNhdGUgdGhlIEVudGVyS2V5SGludCB0eXBlIHRo
YXQgc2hvdWxkIGJlIHVzZWQgd2hlbiBicmluZ2luZworICAgICAgICB1cCBhbiBpbnB1dCB2aWV3
IGZvciB0aGUgZm9jdXNlZCBlbGVtZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGV4dElu
cHV0VHJhaXRzXSk6CisKKyAgICAgICAgTWFwIHRoZSBnaXZlbiBFbnRlcktleUhpbnQgdHlwZSB0
byBhIFVJUmV0dXJuS2V5VHlwZS4gSWYgYW4gdW5zdXBwb3J0ZWQgKGkuZS4gInByZXZpb3VzIikg
b3IgZGVmYXVsdAorICAgICAgICBFbnRlcktleUhpbnQgdmFsdWUgaXMgdXNlZCwgdGhlbiB3ZSBm
YWxsIGJhY2sgdG8gZXhpc3RpbmcgYmVoYXZpb3Igd2hpY2ggZGVkdWNlcyB0aGUgZGVmYXVsdCBl
bnRlcmtleWhpbnQgdmFsdWUKKyAgICAgICAgZnJvbSB0aGUgaW5wdXQgdHlwZSBpZiB0aGUgZm9j
dXNlZCBlbGVtZW50IGlzIGluc2lkZSBhbiBhY3Rpb25hYmxlIGZvcm07IG90aGVyd2lzZSwgd2Ug
YXZvaWQgc2V0dGluZyBhbnkgdmFsdWUKKyAgICAgICAgZm9yIHRoZSBgcmV0dXJuS2V5VHlwZWAs
IGRlZmF1bHRpbmcgdG8gYFVJUmV0dXJuS2V5RGVmYXVsdGAuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmdldEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pOgorCiAyMDE5LTEwLTI4ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50IHdp
dGggYW4gZWxlbWVudCBjb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA1NWMwZTBiZTdkNjQx
ODc4OGQ3YTMxMGE3MTI5YzEyMGY0ZWExMzczLi4wODE2NTFlNzA5ODhlNGRmNzU3NjliYTI5NmU5
YTdiNTgwYWFkM2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTU0MSw2ICs1NDEsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgaHRtbC9Db2xsZWN0aW9uVHlw
ZS5oCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuaAogICAgIGh0bWwvRGF0YUxpc3RTdWdnZXN0aW9u
SW5mb3JtYXRpb24uaAorICAgIGh0bWwvRW50ZXJLZXlIaW50LmgKICAgICBodG1sL0ZlYXR1cmVQ
b2xpY3kuaAogICAgIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKICAgICBodG1sL0Zvcm1O
YW1lZEl0ZW0uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uLmNwcAppbmRleCBkNWFhMzFkMDc3NmIxYWY3ODhhYjBiZmRlNjhjZGFmYTNlN2Rk
M2RkLi4xOWY0Mzc1YzBhNmU1OGViMTg1NDk3ZjQwMTY4M2Q2ZGRjNjczNGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcApAQCAt
NzksNiArNzksNyBAQCB2b2lkIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb246OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGF1dG9jYXBp
dGFsaXplVHlwZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGVsZW1lbnRUeXBlKTsKICAgICBl
bmNvZGVyLmVuY29kZUVudW0oaW5wdXRNb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oZW50
ZXJLZXlIaW50KTsKICAgICBlbmNvZGVyIDw8IGZvcm1BY3Rpb247CiAgICAgZW5jb2RlciA8PCBz
ZWxlY3RPcHRpb25zOwogICAgIGVuY29kZXIgPDwgc2VsZWN0ZWRJbmRleDsKQEAgLTE2Miw2ICsx
NjMsOSBAQCBib29sIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb246OmRlY29kZShJUEM6OkRlY29k
ZXImIGRlY29kZXIsIEZvY3VzZWRFbGVtZW50SW5mbwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVF
bnVtKHJlc3VsdC5pbnB1dE1vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQuZW50ZXJLZXlIaW50KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZm9ybUFjdGlvbikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5oCmluZGV4IDVmYWNmZTFhNDFkMzA1Y2M4YzIxOGQyNTAyNTc0
OGNiODQyMWU2M2MuLmI4NTNjZDFlNDRmZmQyZmIyY2Y5ZTc4NWEwNjc4YWU5ODUzYWQ1OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9maWxsLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Db2xvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudENvbnRleHQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0VudGVyS2V5SGludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5wdXRNb2RlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CkBAIC0xMTgsNiArMTE5LDcgQEAgc3RydWN0IEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24gewogICAgIEF1dG9jYXBpdGFsaXplVHlwZSBhdXRvY2FwaXRhbGl6ZVR5
cGUgeyBBdXRvY2FwaXRhbGl6ZVR5cGVEZWZhdWx0IH07CiAgICAgSW5wdXRUeXBlIGVsZW1lbnRU
eXBlIHsgSW5wdXRUeXBlOjpOb25lIH07CiAgICAgV2ViQ29yZTo6SW5wdXRNb2RlIGlucHV0TW9k
ZSB7IFdlYkNvcmU6OklucHV0TW9kZTo6VW5zcGVjaWZpZWQgfTsKKyAgICBXZWJDb3JlOjpFbnRl
cktleUhpbnQgZW50ZXJLZXlIaW50IHsgV2ViQ29yZTo6RW50ZXJLZXlIaW50OjpVbnNwZWNpZmll
ZCB9OwogICAgIFN0cmluZyBmb3JtQWN0aW9uOwogICAgIFZlY3RvcjxPcHRpb25JdGVtPiBzZWxl
Y3RPcHRpb25zOwogICAgIGludCBzZWxlY3RlZEluZGV4IHsgLTEgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmlu
ZGV4IDg5NTcyMjc5MTgwMTQ4MDI1OGNjYjEzMDRlMTMyZjRmNjlkNDNjMWEuLjliYTM3NThhODE2
NzVkNTQ3ODk3NzcxMzYwYzFjYjlmNTYzZDkxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDcwOSw4
ICs0NzA5LDMwIEBAIC0gKFVJVGV4dElucHV0VHJhaXRzICopdGV4dElucHV0VHJhaXRzCiAgICAg
W190cmFpdHMgc2V0U2VjdXJlVGV4dEVudHJ5Ol9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVs
ZW1lbnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpQYXNzd29yZCB8fCBbX2Zvcm1JbnB1dFNl
c3Npb24gZm9yY2VTZWN1cmVUZXh0RW50cnldXTsKICAgICBbX3RyYWl0cyBzZXRTaG9ydGN1dENv
bnZlcnNpb25UeXBlOl9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdl
YktpdDo6SW5wdXRUeXBlOjpQYXNzd29yZCA/IFVJVGV4dFNob3J0Y3V0Q29udmVyc2lvblR5cGVO
byA6IFVJVGV4dFNob3J0Y3V0Q29udmVyc2lvblR5cGVEZWZhdWx0XTsKIAotICAgIGlmICghX2Zv
Y3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZm9ybUFjdGlvbi5pc0VtcHR5KCkpCi0gICAgICAgIFtf
dHJhaXRzIHNldFJldHVybktleVR5cGU6KF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1l
bnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpTZWFyY2gpID8gVUlSZXR1cm5LZXlTZWFyY2gg
OiBVSVJldHVybktleUdvXTsKKyAgICBzd2l0Y2ggKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
LmVudGVyS2V5SGludCkgeworICAgIGNhc2UgV2ViQ29yZTo6RW50ZXJLZXlIaW50OjpFbnRlcjoK
KyAgICAgICAgW190cmFpdHMgc2V0UmV0dXJuS2V5VHlwZTpVSVJldHVybktleURlZmF1bHRdOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkVudGVyS2V5SGludDo6RG9uZToKKyAg
ICAgICAgW190cmFpdHMgc2V0UmV0dXJuS2V5VHlwZTpVSVJldHVybktleURvbmVdOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkVudGVyS2V5SGludDo6R286CisgICAgICAgIFtf
dHJhaXRzIHNldFJldHVybktleVR5cGU6VUlSZXR1cm5LZXlHb107CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6RW50ZXJLZXlIaW50OjpOZXh0OgorICAgICAgICBbX3RyYWl0cyBz
ZXRSZXR1cm5LZXlUeXBlOlVJUmV0dXJuS2V5TmV4dF07CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViQ29yZTo6RW50ZXJLZXlIaW50OjpTZWFyY2g6CisgICAgICAgIFtfdHJhaXRzIHNldFJl
dHVybktleVR5cGU6VUlSZXR1cm5LZXlTZWFyY2hdOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkVudGVyS2V5SGludDo6U2VuZDoKKyAgICAgICAgW190cmFpdHMgc2V0UmV0dXJu
S2V5VHlwZTpVSVJldHVybktleVNlbmRdOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7
CisgICAgICAgIGlmICghX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZm9ybUFjdGlvbi5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBbX3RyYWl0cyBzZXRSZXR1cm5LZXlUeXBlOl9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpTZWFyY2gg
PyBVSVJldHVybktleVNlYXJjaCA6IFVJUmV0dXJuS2V5R29dOworICAgIH0KKyAgICB9CiAKICAg
ICBpZiAoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJ
bnB1dFR5cGU6OlBhc3N3b3JkIHx8IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRU
eXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpFbWFpbCB8fCBfZm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbi5lbGVtZW50VHlwZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6VVJMIHx8IF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmZvcm1BY3Rpb24uY29udGFpbnMoImxvZ2luIikpIHsKICAgICAgICAg
W190cmFpdHMgc2V0QXV0b2NhcGl0YWxpemF0aW9uVHlwZTpVSVRleHRBdXRvY2FwaXRhbGl6YXRp
b25UeXBlTm9uZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IGQ2MjM4MTBmNDE0NDljODEwZGQyZmU1Y2YxMWE3NWZlMmI4
MzU1ZGQuLjFjMDJhZGIwMWI4OTU5Nzc1ODFjOTllOTYyMzk5NjA5MGVmNWEzZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0yOTg3LDYgKzI5ODcsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldEZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24oRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5mb3JtYXRpbwogICAgICAgICBpbmZv
cm1hdGlvbi5hdXRvZmlsbEZpZWxkTmFtZSA9IFdlYkNvcmU6OnRvQXV0b2ZpbGxGaWVsZE5hbWUo
ZWxlbWVudC5hdXRvZmlsbERhdGEoKS5maWVsZE5hbWUpOwogICAgICAgICBpbmZvcm1hdGlvbi5w
bGFjZWhvbGRlciA9IGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1M
TmFtZXM6OnBsYWNlaG9sZGVyQXR0cik7CiAgICAgICAgIGluZm9ybWF0aW9uLmlucHV0TW9kZSA9
IGVsZW1lbnQuY2Fub25pY2FsSW5wdXRNb2RlKCk7CisgICAgICAgIGluZm9ybWF0aW9uLmVudGVy
S2V5SGludCA9IGVsZW1lbnQuY2Fub25pY2FsRW50ZXJLZXlIaW50KCk7CiAgICAgfSBlbHNlIGlm
IChpczxIVE1MSW5wdXRFbGVtZW50PigqbV9mb2N1c2VkRWxlbWVudCkpIHsKICAgICAgICAgSFRN
TElucHV0RWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCptX2Zv
Y3VzZWRFbGVtZW50KTsKICAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gZWxlbWVudC5m
b3JtKCk7CkBAIC0zMDQ4LDYgKzMwNDksNyBAQCB2b2lkIFdlYlBhZ2U6OmdldEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24oRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5mb3JtYXRpbwogICAg
ICAgICBpbmZvcm1hdGlvbi5oYXNTdWdnZXN0aW9ucyA9ICEhZWxlbWVudC5saXN0KCk7CiAjZW5k
aWYKICAgICAgICAgaW5mb3JtYXRpb24uaW5wdXRNb2RlID0gZWxlbWVudC5jYW5vbmljYWxJbnB1
dE1vZGUoKTsKKyAgICAgICAgaW5mb3JtYXRpb24uZW50ZXJLZXlIaW50ID0gZWxlbWVudC5jYW5v
bmljYWxFbnRlcktleUhpbnQoKTsKICAgICAgICAgaW5mb3JtYXRpb24uaXNSZWFkT25seSA9IGVs
ZW1lbnQuaXNSZWFkT25seSgpOwogICAgICAgICBpbmZvcm1hdGlvbi52YWx1ZSA9IGVsZW1lbnQu
dmFsdWUoKTsKICAgICAgICAgaW5mb3JtYXRpb24udmFsdWVBc051bWJlciA9IGVsZW1lbnQudmFs
dWVBc051bWJlcigpOwpAQCAtMzA2Miw2ICszMDY0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uKEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGluZm9ybWF0
aW8KICAgICAgICAgICAgIGluZm9ybWF0aW9uLmlzQXV0b2NvcnJlY3QgPSBmb2N1c2VkRWxlbWVu
dC5zaG91bGRBdXRvY29ycmVjdCgpOwogICAgICAgICAgICAgaW5mb3JtYXRpb24uYXV0b2NhcGl0
YWxpemVUeXBlID0gZm9jdXNlZEVsZW1lbnQuYXV0b2NhcGl0YWxpemVUeXBlKCk7CiAgICAgICAg
ICAgICBpbmZvcm1hdGlvbi5pbnB1dE1vZGUgPSBmb2N1c2VkRWxlbWVudC5jYW5vbmljYWxJbnB1
dE1vZGUoKTsKKyAgICAgICAgICAgIGluZm9ybWF0aW9uLmVudGVyS2V5SGludCA9IGZvY3VzZWRF
bGVtZW50LmNhbm9uaWNhbEVudGVyS2V5SGludCgpOwogICAgICAgICAgICAgaW5mb3JtYXRpb24u
c2hvdWxkU3ludGhlc2l6ZUtleUV2ZW50c0ZvckVkaXRpbmcgPSBmb2N1c2VkRWxlbWVudC5kb2N1
bWVudCgpLnNldHRpbmdzKCkuc3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZCgpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgaW5mb3JtYXRpb24uaXNBdXRvY29ycmVjdCA9IHRy
dWU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
OWJjZDk5MzJmZWU1NGVlZGQyMWUyMmMwYWUxNzU2NWY5YjNjYzMxNi4uZTQzNDBlNWNjZGY0ZjM5
M2VkYTdhMGY5MWVlMjgxZDg0M2MxZmZhZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTEwLTI3ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBlbnRlcmtleWhp
bnQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5NTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTAyMTE0OD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IEFQSSB0ZXN0cyB0
byBjaGVjayB0aGUgcmVzdWx0aW5nIFVJUmV0dXJuS2V5VHlwZSB0aGF0IGdldHMgc2V0IG9uIHRl
eHQgaW5wdXQgdHJhaXRzIGluIHRoZSBVSSBwcm9jZXNzLAorICAgICAgICBnaXZlbiB0aGUgZGlm
ZmVyZW50IHZhbHVlcyBmb3IgImVudGVya2V5aGludCIuIEFsc28gdmVyaWZpZXMgdGhhdCB0aGUg
ZGVmYXVsdCBiZWhhdmlvcnMgb2Ygc2VhcmNoIGZpZWxkcyBhbmQKKyAgICAgICAgdGV4dCBpbnB1
dCBmaWVsZHMgaW5zaWRlIGFjdGlvbmFibGUgZm9ybSBlbGVtZW50cyBpcyB0byBzaG93ICJTZWFy
Y2giIG9yICJHbyIgYXMgdGhlIHJldHVybiBrZXkgYnkgZGVmYXVsdCwKKyAgICAgICAgdW5sZXNz
IGEgZGlmZmVyZW50IHZhbHVlIGZvciAiZW50ZXJrZXloaW50IiBpcyBzcGVjaWZpZWQuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9FbnRlcktleUhpbnRUZXN0
cy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgdGVzdDplbnRlcktleUhpbnQ6
cmV0dXJuS2V5VHlwZTpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmVudGVyS2V5SGludFRl
c3RDYXNlcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVXZWJWaWV3QW5kSW5wdXRE
ZWxlZ2F0ZUZvclRlc3RpbmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIw
MTktMTAtMjggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkZWQgbXlzZWxmIGFzIGEgY29tbWl0dGVyLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiODFlYjEyY2I0YzViODZkOTRjZGQwMzY4ZDUyZTgwMzFiMjI3NzI4Li40NjkxZDhjN2E5
MTk2ODhhNjc3ZGFkMmRlZTAzMzRjMzhhYzM3YjFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTAzMSw2ICsxMDMxLDcgQEAKIAkJRjRDODc5N0YyMDU5RDhEMzAwOUNEMDBCIC8qIFNjcm9s
bFZpZXdJbnNldFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRDODc5N0UyMDU5RDhEMzAwOUNEMDBCIC8qIFNjcm9sbFZpZXdJbnNldFRlc3Rz
Lm1tICovOyB9OwogCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyogdGV4dC13aXRoLWFzeW5j
LXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0Q0Q3NEM1MjBGREFDRjUwMERFMzc5NCAvKiB0ZXh0LXdpdGgtYXN5bmMtc2Ny
aXB0Lmh0bWwgKi87IH07CiAJCUY0Q0Q3NEM5MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2No
ZW1lSGFuZGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0Q0Q3NEM4MjBGREI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSAq
LzsgfTsKKwkJRjRDRjMyODAyMzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRjMyN0Yy
MzY2NTUyMjAwRDNBRDA3IC8qIEVudGVyS2V5SGludFRlc3RzLm1tICovOyB9OwogCQlGNEQyOTg2
RTIwRkVFNzM3MDA5MkQ2MzYgLyogUnVuU2NyaXB0QWZ0ZXJEb2N1bWVudExvYWQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQyOTg2RDIwRkVFNzM3
MDA5MkQ2MzYgLyogUnVuU2NyaXB0QWZ0ZXJEb2N1bWVudExvYWQubW0gKi87IH07CiAJCUY0RDRG
M0I2MUU0RTJCQ0IwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I0MUU0RTJCQ0Iw
MEJCMjc2NyAvKiBEcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSAqLzsgfTsKIAkJRjRENEYzQjkx
RTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3Njcg
LyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLzsgfTsKQEAgLTE0NTgsNyArMTQ1OSw2IEBACiAJ
CQkJNTc2NjNERUEyMzRFQTY2RDAwRTg1RTA5IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLW5mYy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NzQ1NEQyMjM1OUJC
MDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3Jl
ZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1N0M2MjQ1MDIzNDZDMjFF
MDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKLQkJCQk1Nzk4MzM3RTIzNjAxOUE0MDA4RTU1NDcgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyogd2ViZm9udC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTUxNzE0RUI0MUNGOEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2ls
bElEQkNsZWFudXAtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxNzE0RUI1MUNG
OEM3OEMwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLApAQCAtMjU1Niw2ICsyNTU2LDcgQEAKIAkJRjRDRDc0QzcyMEZEQjQ5NjAw
REUzNzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRlc3RVUkxT
Y2hlbWVIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0Q0Q3NEM4MjBG
REI0OTYwMERFMzc5NCAvKiBUZXN0VVJMU2NoZW1lSGFuZGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRlc3RVUkxTY2hlbWVIYW5kbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNENEQUIzMzIyNDg5RkUxMDA1N0EyRDkgLyogSVBhZFVzZXJJbnRlcmZhY2VTd2l6emxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJUGFkVXNlckludGVyZmFjZVN3aXp6bGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0Q0YzMjdGMjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktl
eUhpbnRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVudGVyS2V5SGludFRlc3RzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQyOTg2RDIwRkVFNzM3MDA5MkQ2MzYg
LyogUnVuU2NyaXB0QWZ0ZXJEb2N1bWVudExvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBS
dW5TY3JpcHRBZnRlckRvY3VtZW50TG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BTaW11
bGF0b3JJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I3MUU0RTM2
RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BUZXN0c0lPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTMxMzUsNiArMzEzNiw3IEBACiAJCQkJRjQyRDYzNDMyMkExNzI5
RjAwRDJGQjNBIC8qIEF1dG9jb3JyZWN0aW9uVGVzdHNJT1MubW0gKi8sCiAJCQkJNDQwNzdCQjAy
MzE0NDlEMjAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0SU9TLm1tICovLAogCQkJCUY0RDRG
M0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tICovLAorCQkJCUY0
Q0YzMjdGMjM2NjU1MjIwMEQzQUQwNyAvKiBFbnRlcktleUhpbnRUZXN0cy5tbSAqLywKIAkJCQlG
NEJDMEIxMzIxNDZDODQ5MDAyQTA0NzggLyogRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5tbSAqLywK
IAkJCQlDREE5M0RBQzIyRjRFQzIyMDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlz
dGljVGVzdHMuY3BwICovLAogCQkJCUY0NUUxNTcyMjExMkNFMjkwMDMwN0U4MiAvKiBLZXlib2Fy
ZElucHV0VGVzdHNJT1MubW0gKi8sCkBAIC00NTY0LDYgKzQ1NjYsNyBAQAogCQkJCTdDQ0U3RUUw
MUE0MTFBOUEwMDQ0N0M0QyAvKiBFZGl0b3JDb21tYW5kcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUY0NEQwNjQ3MUYzOTYyN0EwMDFBMEUyOSAvKiBFZGl0b3JTdGF0ZVRlc3RzLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdFQkYxQTQxMUE3RTAwNDQ3QzRDIC8qIEVsZW1lbnRBdFBvaW50SW5X
ZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0Q0YzMjgwMjM2NjU1MjIwMEQzQUQwNyAv
KiBFbnRlcktleUhpbnRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3NDkyQjNCMURGOEIx
NEMwMDYzM0RFMSAvKiBFbnVtZXJhdGVNZWRpYURldmljZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFRjFBNDExQUU2MDA0NDdDNEMgLyogRXBoZW1l
cmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRW50ZXJLZXlIaW50VGVz
dHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9FbnRlcktleUhpbnRUZXN0cy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTYzMzRhN2QxNjYwM2IzZTExMGRjYjA4YmI4NzE1ZTE2MzQzOTFlCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRW50ZXJLZXlI
aW50VGVzdHMubW0KQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIlRlc3RJbnB1dERl
bGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVSUtpdFNQSS5o
IgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tJbnB1dERlbGVnYXRlLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworQGlu
dGVyZmFjZSBUZXN0V0tXZWJWaWV3IChFbnRlcktleUhpbnRUZXN0cykKKy0gKHZvaWQpdGVzdDoo
TlNTdHJpbmcgKilxdWVyeVNlbGVjdG9yIGVudGVyS2V5SGludDooTlNTdHJpbmcgKillbnRlcktl
eUhpbnQgcmV0dXJuS2V5VHlwZTooVUlSZXR1cm5LZXlUeXBlKXJldHVybktleVR5cGU7CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IChFbnRlcktleUhpbnRUZXN0cykKKwor
LSAodm9pZCl0ZXN0OihOU1N0cmluZyAqKXF1ZXJ5U2VsZWN0b3IgZW50ZXJLZXlIaW50OihOU1N0
cmluZyAqKWVudGVyS2V5SGludCByZXR1cm5LZXlUeXBlOihVSVJldHVybktleVR5cGUpcmV0dXJu
S2V5VHlwZQoreworICAgIFtzZWxmIHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCclQCcpLmVudGVy
S2V5SGludCA9ICclQCciLCBxdWVyeVNlbGVjdG9yLCBlbnRlcktleUhpbnRdXTsKKyAgICBbc2Vs
ZiBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCclQCcpLmZvY3Vz
KCkiLCBxdWVyeVNlbGVjdG9yXV07CisgICAgRVhQRUNUX0VRKHJldHVybktleVR5cGUsIFtzZWxm
IHRleHRJbnB1dENvbnRlbnRWaWV3XS50ZXh0SW5wdXRUcmFpdHMucmV0dXJuS2V5VHlwZSk7Cisg
ICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdl
OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkiXTsKK30KKworQGVuZAorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK3VzaW5nIEVudGVyS2V5SGludFRlc3RDYXNlID0gc3RkOjpw
YWlyPFJldGFpblB0cjxOU1N0cmluZz4sIFVJUmV0dXJuS2V5VHlwZT47CisKK1ZlY3RvcjxFbnRl
cktleUhpbnRUZXN0Q2FzZT4gZW50ZXJLZXlIaW50VGVzdENhc2VzKFVJUmV0dXJuS2V5VHlwZSBm
YWxsYmFja1JldHVybktleVR5cGUgPSBVSVJldHVybktleURlZmF1bHQpCit7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgeyBAIiIsIGZhbGxiYWNrUmV0dXJuS2V5VHlwZSB9LAorICAgICAgICB7IEAi
ZW50ZXIiLCBVSVJldHVybktleURlZmF1bHQgfSwKKyAgICAgICAgeyBAImRvbmUiLCBVSVJldHVy
bktleURvbmUgfSwKKyAgICAgICAgeyBAImdvIiwgVUlSZXR1cm5LZXlHbyB9LAorICAgICAgICB7
IEAibmV4dCIsIFVJUmV0dXJuS2V5TmV4dCB9LAorICAgICAgICB7IEAicHJldmlvdXMiLCBmYWxs
YmFja1JldHVybktleVR5cGUgfSwKKyAgICAgICAgeyBAInNlYXJjaCIsIFVJUmV0dXJuS2V5U2Vh
cmNoIH0sCisgICAgICAgIHsgQCJzZW5kIiwgVUlSZXR1cm5LZXlTZW5kIH0KKyAgICB9OworfQor
CitzdGF0aWMgc3RkOjpwYWlyPFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiwgUmV0YWluUHRyPFRl
c3RJbnB1dERlbGVnYXRlPj4gY3JlYXRlV2ViVmlld0FuZElucHV0RGVsZWdhdGVGb3JUZXN0aW5n
KCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIGF1dG8gaW5w
dXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxl
cjpbJl0gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgLT4gX1dLRm9j
dXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3kgeworICAgICAgICByZXR1cm4gX1dLRm9jdXNTdGFy
dHNJbnB1dFNlc3Npb25Qb2xpY3lBbGxvdzsKKyAgICB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5w
dXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKHdl
YlZpZXcpLCBXVEZNb3ZlKGlucHV0RGVsZWdhdGUpIH07Cit9CisKK1RFU1QoRW50ZXJLZXlIaW50
VGVzdHMsIEVudGVyS2V5SGludEluQ29udGVudEVkaXRhYmxlRWxlbWVudCkKK3sKKyAgICBSZXRh
aW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldzsKKyAgICBSZXRhaW5QdHI8VGVzdElucHV0RGVs
ZWdhdGU+IGlucHV0RGVsZWdhdGU7CisgICAgc3RkOjp0aWUod2ViVmlldywgaW5wdXREZWxlZ2F0
ZSkgPSBjcmVhdGVXZWJWaWV3QW5kSW5wdXREZWxlZ2F0ZUZvclRlc3RpbmcoKTsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8ZGl2IGNvbnRlbnRlZGl0YWJsZT48
L2Rpdj4iXTsKKyAgICBmb3IgKGF1dG8mIHRlc3QgOiBlbnRlcktleUhpbnRUZXN0Q2FzZXMoKSkK
KyAgICAgICAgW3dlYlZpZXcgdGVzdDpAImRpdiIgZW50ZXJLZXlIaW50OnRlc3QuZmlyc3QuZ2V0
KCkgcmV0dXJuS2V5VHlwZTp0ZXN0LnNlY29uZF07Cit9CisKK1RFU1QoRW50ZXJLZXlIaW50VGVz
dHMsIEVudGVyS2V5SGludEluVGV4dElucHV0KQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJW
aWV3PiB3ZWJWaWV3OworICAgIFJldGFpblB0cjxUZXN0SW5wdXREZWxlZ2F0ZT4gaW5wdXREZWxl
Z2F0ZTsKKyAgICBzdGQ6OnRpZSh3ZWJWaWV3LCBpbnB1dERlbGVnYXRlKSA9IGNyZWF0ZVdlYlZp
ZXdBbmRJbnB1dERlbGVnYXRlRm9yVGVzdGluZygpOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIiIKKyAgICAgICAgIjxmb3JtIGFjdGlvbj0nIycgbWV0aG9kPSdw
b3N0Jz4iCisgICAgICAgICIgICAgPGlucHV0IGlkPSdvbmUnIG5hbWU9J2ZvbycgLz4iCisgICAg
ICAgICIgICAgPGlucHV0IGlkPSd0d28nIHR5cGU9J3NlYXJjaCcgbmFtZT0nYmFyJyAvPiIKKyAg
ICAgICAgIiAgICA8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0ndGVzdCcgLz4iCisgICAgICAg
ICI8L2Zvcm0+IgorICAgICAgICAiPGlucHV0IGlkPSd0aHJlZScgLz4iXTsKKworICAgIGZvciAo
YXV0byYgdGVzdCA6IGVudGVyS2V5SGludFRlc3RDYXNlcyhVSVJldHVybktleUdvKSkKKyAgICAg
ICAgW3dlYlZpZXcgdGVzdDpAIiNvbmUiIGVudGVyS2V5SGludDp0ZXN0LmZpcnN0LmdldCgpIHJl
dHVybktleVR5cGU6dGVzdC5zZWNvbmRdOworCisgICAgZm9yIChhdXRvJiB0ZXN0IDogZW50ZXJL
ZXlIaW50VGVzdENhc2VzKFVJUmV0dXJuS2V5U2VhcmNoKSkKKyAgICAgICAgW3dlYlZpZXcgdGVz
dDpAIiN0d28iIGVudGVyS2V5SGludDp0ZXN0LmZpcnN0LmdldCgpIHJldHVybktleVR5cGU6dGVz
dC5zZWNvbmRdOworCisgICAgZm9yIChhdXRvJiB0ZXN0IDogZW50ZXJLZXlIaW50VGVzdENhc2Vz
KCkpCisgICAgICAgIFt3ZWJWaWV3IHRlc3Q6QCIjdGhyZWUiIGVudGVyS2V5SGludDp0ZXN0LmZp
cnN0LmdldCgpIHJldHVybktleVR5cGU6dGVzdC5zZWNvbmRdOworfQorCitURVNUKEVudGVyS2V5
SGludFRlc3RzLCBFbnRlcktleUhpbnRJblRleHRBcmVhKQoreworICAgIFJldGFpblB0cjxUZXN0
V0tXZWJWaWV3PiB3ZWJWaWV3OworICAgIFJldGFpblB0cjxUZXN0SW5wdXREZWxlZ2F0ZT4gaW5w
dXREZWxlZ2F0ZTsKKyAgICBzdGQ6OnRpZSh3ZWJWaWV3LCBpbnB1dERlbGVnYXRlKSA9IGNyZWF0
ZVdlYlZpZXdBbmRJbnB1dERlbGVnYXRlRm9yVGVzdGluZygpOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjx0ZXh0YXJlYT48L3RleHRhcmVhPiJdOworICAgIGZv
ciAoYXV0byYgdGVzdCA6IGVudGVyS2V5SGludFRlc3RDYXNlcygpKQorICAgICAgICBbd2ViVmll
dyB0ZXN0OkAidGV4dGFyZWEiIGVudGVyS2V5SGludDp0ZXN0LmZpcnN0LmdldCgpIHJldHVybktl
eVR5cGU6dGVzdC5zZWNvbmRdOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>
<flag name="review"
          id="397885"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="397931"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>