<?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>68552</bug_id>
          
          <creation_ts>2011-09-21 11:55:22 -0700</creation_ts>
          <short_desc>[WK2] [Mac] Support drag in mouse events for WebKit2 EventSender</short_desc>
          <delta_ts>2025-12-10 06:33:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>68108</dependson>
    
    <dependson>120538</dependson>
          <blocked>42194</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Gerald Squelart">g_squelart</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>g_squelart</cc>
    
    <cc>jberlin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>471000</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-09-21 11:55:22 -0700</bug_when>
    <thetext>The implementation for bug 68108 does not include the drag support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482448</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-12 09:21:35 -0700</bug_when>
    <thetext>Why is this making bots red? Can we just add some tests back to the Skipped list?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923065</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-30 10:44:05 -0700</bug_when>
    <thetext>We currently have many drag and drop tests enabled and even &quot;passing&quot;, but mostly by accident.

I have a patch that implements WebKit1-like event saving and replaying. This doesn&apos;t quite work, because WebDragClient messages from WebProcess are asynchronous, and are delivered out of order in WKTR, which is mostly synchronous when it comes to event handling.

The ideal way to fix this would involve refactoring WebKit2 to use NSDragSession API, which is not modal, and thus doesn&apos;t need mouse event saving for tests. There are exciting opportunities for cleanup in WebKit here, as the new API doesn&apos;t use NSPasteboard for drag initiation, so we could somewhat decouple drag&amp;drop from clipboard (the only caveat being that DOM APIs expose them as one class, so WebCore layer has to respect that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923078</commentid>
    <comment_count>3</comment_count>
      <attachid>210135</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-30 10:59:32 -0700</bug_when>
    <thetext>Created attachment 210135
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923082</commentid>
    <comment_count>4</comment_count>
      <attachid>210135</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-30 10:59:55 -0700</bug_when>
    <thetext>Comment on attachment 210135
proposed fix

Sorry, wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2138085</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-08-21 13:56:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/158888281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2155854</commentid>
    <comment_count>6</comment_count>
    <who name="Gerald Squelart">g_squelart</who>
    <bug_when>2025-11-02 15:57:47 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/52429</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2164783</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-12-10 06:33:21 -0800</bug_when>
    <thetext>Committed 304228@main (5c22c9211fd8): &lt;https://commits.webkit.org/304228@main&gt;

Reviewed commits have been landed. Closing PR #52429 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210135</attachid>
            <date>2013-08-30 10:59:32 -0700</date>
            <delta_ts>2013-08-30 10:59:55 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>DragScreenInterference.txt</filename>
            <type>text/plain</type>
            <size>26074</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDg5NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA4LTMwICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdW01hY10gRHJhZyBh
bmQgZHJvcCB0ZXN0cyBpbnRlcmZlcmUgd2l0aCB1c2VyJ3MgVUkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDUzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOiAoLVtXS1ZpZXcgX3NldERyYWdJbWFnZTphdDpsaW5rRHJhZzpdKTogTWFrZSBpdCBwb3Nz
aWJsZQorICAgICAgICB0byBvdmVycmlkZSBkcmFnIGluaXRpYXRpb24gaW4gc3ViY2xhc3Nlcy4g
SXQgaXMgYSBiaXQgdW5mb3J0dW5hdGUgdGhhdCB0aGlzIGV4cG9zZXMKKyAgICAgICAgYSBkZXBy
ZWNhdGVkIEFQSSB0aGF0IHdlIGNhbGwsIGJ1dCBwcm9iYWJseSBub3QgdW5mb3J0dW5hdGUgZW5v
dWdoIHRvIGludmVudCBhIG5ldworICAgICAgICBzY2FyeSBsb29raW5nIG5hbWUgZm9yIHRoZSBz
YW1lIGZ1bmN0aW9uLCBhbmQgY29uZGl0aW9uYWxseSBjYWxsIHRoYXQgaWYgaW1wbGVtZW50ZWQK
KyAgICAgICAgYnkgc3ViY2xhc3MuCisKIDIwMTMtMDgtMzAgIEdhYm9yIEFicmFoYW0gIDxhYnJo
bUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgRml4LCByZW1vdmUgdW51c2VkIHBhcmFtZXRl
ciBpbiBVSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuY3BwLgpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gMTU0NzUwKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzU0LDEwICsyNzU0LDEwIEBAIC0gKHZvaWQpX3NldERyYWdJbWFnZTooTlNJbWFnZSAqKWltYWdl
IGEKICAgICBzaXplLnNjYWxlKDEuMCAvIF9kYXRhLT5fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KSk7CiAgICAgW2ltYWdlIHNldFNpemU6c2l6ZV07CiAgICAgCi0gICAgLy8gVGhlIGNhbGwgdG8g
c3VwZXIgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KKyAgICAvLyBUaGUgY2FsbCBiZWxvdyBj
b3VsZCByZWxlYXNlIHRoaXMgV0tWaWV3LgogICAgIFJldGFpblB0cjxXS1ZpZXc+IHByb3RlY3Rv
cihzZWxmKTsKICAgICAKLSAgICBbc3VwZXIgZHJhZ0ltYWdlOmltYWdlCisgICAgW3NlbGYgZHJh
Z0ltYWdlOmltYWdlCiAgICAgICAgICAgICAgICAgICBhdDpjbGllbnRQb2ludAogICAgICAgICAg
ICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQogICAgICAgICAgICAgICAgZXZlbnQ6KGxpbmtEcmFnKSA/
IFtOU0FwcCBjdXJyZW50RXZlbnRdIDpfZGF0YS0+X21vdXNlRG93bkV2ZW50CkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTQ4
OTQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAor
MjAxMy0wOC0zMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV0syXVtNYWNdIERyYWcgYW5kIGRyb3AgdGVzdHMgaW50ZXJmZXJlIHdpdGggdXNlcidzIFVJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA1MzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1h
a2VzIHJ1bm5pbmcgV2ViS2l0MiByZWdyZXNzaW9uIHRlc3RzIGxvY2FsbHkgbW9yZSB2aWFibGUu
IFRoZSBwYXRjaCBkb2Vzbid0CisgICAgICAgIGZpeCBkcmFnIGFuZCBkcm9wIHRlc3RzIHRvIHdv
cmsgYXMgZXhwZWN0ZWQsIEkgcG9zdGVkIHNvbWUgdGhvdWdodCBhYm91dCB0aGF0IGluCisgICAg
ICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1NTI+LgorCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgIChX
VFI6OkV2ZW50U2VuZGVyUHJveHk6OnBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpldmVu
dFNlbmRlclByb3h5KToKKyAgICAgICAgRXhwb3NlIGEgd2F5IHRvIGdldCBjdXJyZW50IG1vdXNl
IHBvc2l0aW9uIGZyb20gYW55d2hlcmUgaW4gV0tUUiBjb2RlLgorCisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFk
ZGVkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2Vu
ZGVyUHJveHkubW06IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXApOgorICAgICAgICBD
b3BpZWQgYSBGSVhNRSBjb21tZW50IGZyb20gRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgICgtW1Rl
c3RSdW5uZXJXS1ZpZXcgZHJhZ0ltYWdlOmF0Om9mZnNldDpldmVudDpwYXN0ZWJvYXJkOnNvdXJj
ZTpzbGlkZUJhY2s6XSk6CisgICAgICAgIE92ZXJyaWRlIGRyYWcgaW5pdGlhdGlvbiwgdXNpbmcg
YSBjdXN0b20gTlNEcmFnZ2luZ0luZm8gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbTogKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgIFJlcGxhY2UgTlNFdmVudCB3aXRoIGEg
Y3VzdG9tIGNsYXNzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVz
dFJ1bm5lckRyYWdnaW5nSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQuaDogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tOiBBZGRl
ZC4KKyAgICAgICAgTGFyZ2VseSBhIGNvcHkgb2YgRHVtcFJlbmRlclRyZWUgY2xhc3NlcywgbW9k
aWZpZWQgdG8gbm90IHVzZSBnbG9iYWwgdmFyaWFibGVzLgorICAgICAgICBXZSBzaG91bGQgY29u
c2lkZXIgbWFraW5nIHRoZXNlIHZhcmlhYmxlcyBzdGF0aWMgaW4gRXZlbnRTZW5kZXJQcm94eSB0
aG91Z2gsIGFzCisgICAgICAgIGl0J3Mgc3RyYW5nZSB0aGF0IG1vdXNlIHN0YXRlIGluIFdLVFIg
aXMgcmVzZXQgYmV0d2VlbiB0ZXN0cyB3aXRob3V0IFdlYktpdCBldmVyCisgICAgICAgIGJlaW5n
IHRvbGQgYWJvdXQgdGhhdC4KKwogMjAxMy0wOC0zMCAgR2Fib3IgQWJyYWhhbSAgPGFicmhtQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBxdC01LjAtd2syIGZyb20gdGhl
IGJhc2VsaW5lIHNlYXJjaCBwYXRocyBiZWNhdXNlIHRoZSBtaWdyYXRpb24gb2YgZXhwZWN0YXRp
b25zIHRvIHF0LXdrMiBpcyBkb25lLgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVu
dFNlbmRlclByb3h5LmgJKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvRXZlbnRTZW5kZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNSArMjcsMTUgQEAK
ICNpZm5kZWYgRXZlbnRTZW5kZXJQcm94eV9oCiAjZGVmaW5lIEV2ZW50U2VuZGVyUHJveHlfaAog
CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxR
RXZlbnQ+CiAjaW5jbHVkZSA8UVRvdWNoRXZlbnQ+CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5j
bHVkZSA8Z2RrL2dkay5oPgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2VsaWYgUExBVEZPUk0o
RUZMKQogI2luY2x1ZGUgPFdlYktpdDIvRVdlYktpdDIuaD4KLSNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV1RSIHsKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IEV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqKTsKICAgICB+RXZl
bnRTZW5kZXJQcm94eSgpOwogCisgICAgV0tQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zaXRpb247IH0KKwogICAgIHZvaWQgbW91c2VEb3duKHVuc2lnbmVkIGJ1dHRvbiwgV0tF
dmVudE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbiwgV0tFdmVu
dE1vZGlmaWVycyk7CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHkpOwpJ
bmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMTU0
NzUwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVdlYlZpZXcqIG1h
aW5XZWJWaWV3KCkgeyByZXR1cm4gbV9tYWluV2ViVmlldy5nZXQoKTsgfQogICAgIFdLQ29udGV4
dFJlZiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKKyAgICBFdmVudFNl
bmRlclByb3h5KiBldmVudFNlbmRlclByb3h5KCkgeyByZXR1cm4gbV9ldmVudFNlbmRlclByb3h5
LmdldCgpOyB9CisKICAgICB2b2lkIGVuc3VyZVZpZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9u
YXJ5UmVmIG9wdGlvbnMpOwogICAgIAogICAgIC8vIFJ1bnMgdGhlIHJ1biBsb29wIHVudGlsIGBk
b25lYCBpcyB0cnVlIG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuCkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU0NzUwKQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTg1LDYgKzg1LDggQEAKIAkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8q
IFRlc3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAg
Ki87IH07CiAJCUJDREEyQjlBMTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0RBMkI5OTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9
OwogCQlDMENFNzIwQjEyNDdDOTMzMDBCQzBFQzQgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQ0U3MjBBMTI0N0M5MzMw
MEJDMEVDNCAvKiBUZXN0UnVubmVyTWFjLm1tICovOyB9OworCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2
MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzJBQTM4MTdDRDVGMTAwMDYxMURGMCAv
KiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tICovOyB9OworCQlFMTMyQUEzRDE3Q0U3
NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0IxN0NFNzc2RjAwNjExREYwIC8q
IFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKIAkJRTFCQTY3MUUxNzQyREE2QTAwQzIw
MjUxIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1l
d29yayAqLzsgfTsKIAkJRTFDNjQyQzMxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzEx
N0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tICovOyB9OwogCQlFMUM2NDJDNjE3Q0JD
RDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDNDE3Q0JDRDRDMDBENjZB
M0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gKi87IH07CkBAIC0yMjEsNiArMjIz
LDEwIEBACiAJCUJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXN0SW52b2NhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDREEyQjk5MTE5MTA1MUYwMEMzQkM0NyAv
KiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3JpcHRD
b3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQzBD
RTcyMEExMjQ3QzkzMzAwQkMwRUM0IC8qIFRlc3RSdW5uZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0UnVubmVyTWFjLm1tOyBwYXRoID0gbWFjL1Rl
c3RSdW5uZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMzJBQTM4MTdD
RDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5n
SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTEzMkFBMzkxN0NENUYxMDAw
NjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0
VGVzdFJ1bm5lckV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTMyQUEzQzE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyog
Q2FyYm9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ2FyYm9uLmZyYW1ld29yazsgcGF0
aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9IFNES1JPT1Q7IH07CiAJCUUxQzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFz
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvc2VBc0NsYXNz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZB
M0MgLyogUG9zZUFzQ2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9z
ZUFzQ2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyNiw2ICs0MzIsMTAg
QEAKIAkJCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MuaCAqLywKIAkJ
CQlCQzhDNzk1QjExRDI3ODVEMDA0NTM1QTEgLyogVGVzdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJ
CQkJRTFDNjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJk
Lm1tICovLAorCQkJCUUxMzJBQTM4MTdDRDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tICovLAorCQkJCUUxMzJBQTM5MTdDRDVGMTAwMDYxMURGMCAvKiBXZWJL
aXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmggKi8sCisJCQkJRTEzMkFBM0IxN0NFNzc2RjAwNjEx
REYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLywKKwkJCQlFMTMyQUEzQzE3Q0U3NzZG
MDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmggKi8sCiAJCQkJRTFDNjQyQzUxN0NC
Q0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8sCiAJCQkpOwog
CQkJcGF0aCA9IG1hYzsKQEAgLTYxMyw2ICs2MjMsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJNTMy
MkZCNDMxM0ZEQTBDRDAwNDFBQkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0g
aW4gU291cmNlcyAqLywKKwkJCQlFMTMyQUEzRDE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVz
dFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTY3MEI4MjgxMzg2RkNBNTAwMkVC
MzU1IC8qIEV2ZW50U2VuZGVyUHJveHkubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNkQ3NThFNzE2
MEJFQ0REMDAyNjg0NzIgLyogR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM3OTM0MDAxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0gaW4gU291cmNlcyAq
LywKQEAgLTYyMyw2ICs2MzQsNyBAQAogCQkJCUJDOEM3OTVDMTFEMjc4NUQwMDQ1MzVBMSAvKiBU
ZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRDdEMkY4MTE5MjEyNzgw
MDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkxOTIw
NTEzMzNFNEY4MDAzMDExREMgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5n
SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNjRDOEYwMTVEMUFEQTEwMEVGMUZFMCAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDI5RkM1RjE2
MjcwODk2MDBGNjZEOEIgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJv
eHkubW0JKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2
ZW50U2VuZGVyUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkgQEAKICNpbXBv
cnQgIlBsYXRmb3JtV2ViVmlldy5oIgogI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCiAjaW1w
b3J0ICJUZXN0Q29udHJvbGxlci5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZy5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApAQCAtMTc5LDggKzE3OSwx
MSBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIAogICAgIE5TVmll
dyAqdGFyZ2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9y
bVZpZXcoKSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV07CisgICAgLy8gRklYTUU6
IFNpbGx5IGhhY2sgdG8gdGVhY2ggV0tUUiB0byByZXNwZWN0IGNhcHR1cmluZyBtb3VzZSBldmVu
dHMgb3V0c2lkZSB0aGUgV0tWaWV3LgorICAgIC8vIFRoZSByaWdodCBzb2x1dGlvbiBpcyBqdXN0
IHRvIHVzZSBOU0FwcGxpY2F0aW9uJ3MgYnVpbHQtaW4gZXZlbnQgc2VuZGluZyBtZXRob2RzLCAK
KyAgICAvLyBpbnN0ZWFkIG9mIHJvbGxpbmcgb3VyIG93biBhbGdvcml0aG0gZm9yIHNlbGVjdGlu
ZyBhbiBldmVudCB0YXJnZXQuCiAgICAgdGFyZ2V0VmlldyA9IHRhcmdldFZpZXcgPyB0YXJnZXRW
aWV3IDogbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7Ci0g
ICAgYXNzZXJ0KHRhcmdldFZpZXcpOworICAgIEFTU0VSVCh0YXJnZXRWaWV3KTsKICAgICBbdGFy
Z2V0VmlldyBtb3VzZVVwOmV2ZW50XTsKICAgICBpZiAoYnV0dG9uTnVtYmVyID09IExlZnRNb3Vz
ZUJ1dHRvbikKICAgICAgICAgbV9sZWZ0TW91c2VCdXR0b25Eb3duID0gZmFsc2U7CkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCShy
ZXZpc2lvbiAxNTQ3NTApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE5ICsyMywyMiBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKLSNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKIAorI2ltcG9ydCAi
VGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQgIldlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8u
aCIKICNpbXBvcnQgPFdlYktpdDIvV0tJbWFnZUNHLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dLVmll
d1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAordXNpbmcgbmFtZXNwYWNl
IFdUUjsKKwogQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyV2luZG93IDogTlNXaW5kb3cgewot
ICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBfcGxhdGZvcm1XZWJWaWV3OworICAgIFBsYXRmb3Jt
V2ViVmlldyogX3BsYXRmb3JtV2ViVmlldzsKICAgICBOU1BvaW50IF9mYWtlT3JpZ2luOwogfQot
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9ybVdlYlZpZXcqIHBsYXRm
b3JtV2ViVmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFBsYXRmb3JtV2ViVmll
dyogcGxhdGZvcm1XZWJWaWV3OwogQGVuZAogCiBAaW50ZXJmYWNlIFRlc3RSdW5uZXJXS1ZpZXcg
OiBXS1ZpZXcgewpAQCAtNjIsNiArNjUsMTIgQEAgLSAoQk9PTClfc2hvdWxkVXNlVGlsZWREcmF3
aW5nQXJlYQogICAgIHJldHVybiBfdXNlVGlsZWREcmF3aW5nOwogfQogCistICh2b2lkKWRyYWdJ
bWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgYXQ6KE5TUG9pbnQpdmlld0xvY2F0aW9uIG9mZnNldDoo
TlNTaXplKWluaXRpYWxPZmZzZXQgZXZlbnQ6KE5TRXZlbnQgKilldmVudCBwYXN0ZWJvYXJkOihO
U1Bhc3RlYm9hcmQgKilwYm9hcmQgc291cmNlOihpZClzb3VyY2VPYmogc2xpZGVCYWNrOihCT09M
KXNsaWRlRmxhZworeworICAgIFJldGFpblB0cjxXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZv
PiBkcmFnZ2luZ0luZm8gPSBhZG9wdE5TKFtbV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mbyBh
bGxvY10gaW5pdFdpdGhJbWFnZTphbkltYWdlIG9mZnNldDppbml0aWFsT2Zmc2V0IHBhc3RlYm9h
cmQ6cGJvYXJkIHNvdXJjZTpzb3VyY2VPYmpdKTsKKyAgICBbc2VsZiBkcmFnZ2luZ1VwZGF0ZWQ6
ZHJhZ2dpbmdJbmZvLmdldCgpXTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViS2l0
VGVzdFJ1bm5lcldpbmRvdwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENv
bnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDE1NDc1MCkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2
ICs0MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBwb3NlQXNDbGFzcygiV2ViS2l0
VGVzdFJ1bm5lclBhc3RlYm9hcmQiLCAiTlNQYXN0ZWJvYXJkIik7CisgICAgcG9zZUFzQ2xhc3Mo
IldlYktpdFRlc3RSdW5uZXJFdmVudCIsICJOU0V2ZW50Iik7CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oCShyZXZpc2lv
biAwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdn
aW5nSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm9faAorI2RlZmlu
ZSBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvX2gKKworI2ltcG9ydCA8Q29jb2EvQ29jb2Eu
aD4KKworQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvIDogTlNPYmplY3Qg
PE5TRHJhZ2dpbmdJbmZvPiB7CitAcHJpdmF0ZQorICAgIE5TU2l6ZSBvZmZzZXQ7CisgICAgTlNJ
bWFnZSAqZHJhZ2dlZEltYWdlOworICAgIE5TUGFzdGVib2FyZCAqZHJhZ2dpbmdQYXN0ZWJvYXJk
OworICAgIGlkIGRyYWdnaW5nU291cmNlOworfQorCistIChpZClpbml0V2l0aEltYWdlOihOU0lt
YWdlICopaW1hZ2Ugb2Zmc2V0OihOU1NpemUpb2Zmc2V0IHBhc3RlYm9hcmQ6KE5TUGFzdGVib2Fy
ZCAqKXBhc3RlYm9hcmQgc291cmNlOihpZClzb3VyY2U7CisKKy0gKE5TV2luZG93ICopZHJhZ2dp
bmdEZXN0aW5hdGlvbldpbmRvdzsKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9w
ZXJhdGlvbk1hc2s7CistIChOU1BvaW50KWRyYWdnaW5nTG9jYXRpb247CistIChOU1BvaW50KWRy
YWdnZWRJbWFnZUxvY2F0aW9uOworLSAoTlNJbWFnZSAqKWRyYWdnZWRJbWFnZTsKKy0gKE5TUGFz
dGVib2FyZCAqKWRyYWdnaW5nUGFzdGVib2FyZDsKKy0gKGlkKWRyYWdnaW5nU291cmNlOworLSAo
aW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXI7CisKKy0gKHZvaWQpc2xpZGVEcmFnZ2VkSW1hZ2VU
bzooTlNQb2ludClzY3JlZW5Qb2ludDsKKy0gKE5TQXJyYXkgKiluYW1lc09mUHJvbWlzZWRGaWxl
c0Ryb3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAqKWRyb3BEZXN0aW5hdGlvbjsKK0BlbmQKKwor
CisjZW5kaWYgLy8gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mb19oCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dp
bmdJbmZvLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCitu
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJ
bmZvLm1tCShyZXZpc2lvbiAwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0
VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
V2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oIgorCisjaW1wb3J0ICJFdmVudFNlbmRlclBy
b3h5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9s
bGVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXVFI7CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJLaXRU
ZXN0UnVubmVyRHJhZ2dpbmdJbmZvCisKKy0gKGlkKWluaXRXaXRoSW1hZ2U6KE5TSW1hZ2UgKilh
bkltYWdlIG9mZnNldDooTlNTaXplKW8gcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJk
IHNvdXJjZTooaWQpc291cmNlCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAo
IXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBkcmFnZ2VkSW1hZ2UgPSBbYW5JbWFn
ZSByZXRhaW5dOworICAgIGRyYWdnaW5nUGFzdGVib2FyZCA9IFtwYm9hcmQgcmV0YWluXTsKKyAg
ICBkcmFnZ2luZ1NvdXJjZSA9IFtzb3VyY2UgcmV0YWluXTsKKyAgICBvZmZzZXQgPSBvOworICAg
IAorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbZHJhZ2dl
ZEltYWdlIHJlbGVhc2VdOworICAgIFtkcmFnZ2luZ1Bhc3RlYm9hcmQgcmVsZWFzZV07CisgICAg
W2RyYWdnaW5nU291cmNlIHJlbGVhc2VdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
TlNXaW5kb3cgKilkcmFnZ2luZ0Rlc3RpbmF0aW9uV2luZG93IAoreworICAgIHJldHVybiBbVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIHdpbmRv
d107Cit9CisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2sg
Cit7CisgICAgLy8gV0tWaWV3IGN1cnJlbnRseSBpbXBsZW1lbnRzIG5laXRoZXIgZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6IG5vciBkcmFnZ2luZ1Nlc3Npb246c291cmNlT3Bl
cmF0aW9uTWFza0ZvckRyYWdnaW5nQ29udGV4dDouCisgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlv
bkFsbDsKK30KKworLSAoTlNQb2ludClkcmFnZ2luZ0xvY2F0aW9uCit7CisgICAgV0tQb2ludCBs
b2NhdGlvbiA9IFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5ldmVudFNlbmRlclByb3h5KCktPnBv
c2l0aW9uKCk7CisgICAgcmV0dXJuIE5TTWFrZVBvaW50KGxvY2F0aW9uLngsIGxvY2F0aW9uLnkp
OworfQorCistIChOU1BvaW50KWRyYWdnZWRJbWFnZUxvY2F0aW9uIAoreworICAgIFdLUG9pbnQg
bG9jYXRpb24gPSBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuZXZlbnRTZW5kZXJQcm94eSgpLT5w
b3NpdGlvbigpOworICAgIHJldHVybiBOU01ha2VQb2ludChsb2NhdGlvbi54ICsgb2Zmc2V0Lndp
ZHRoLCBsb2NhdGlvbi55ICsgb2Zmc2V0LmhlaWdodCk7Cit9CisKKy0gKE5TSW1hZ2UgKilkcmFn
Z2VkSW1hZ2UKK3sKKyAgICByZXR1cm4gZHJhZ2dlZEltYWdlOworfQorCistIChOU1Bhc3RlYm9h
cmQgKilkcmFnZ2luZ1Bhc3RlYm9hcmQKK3sKKyAgICByZXR1cm4gZHJhZ2dpbmdQYXN0ZWJvYXJk
OworfQorCistIChpZClkcmFnZ2luZ1NvdXJjZQoreworICAgIHJldHVybiBkcmFnZ2luZ1NvdXJj
ZTsKK30KKworLSAoaW50KWRyYWdnaW5nU2VxdWVuY2VOdW1iZXIKK3sKKyAgICBOU0xvZyhAIldl
YktpdFRlc3RSdW5uZXIgZG9lc24ndCBzdXBwb3J0IGRyYWdnaW5nU2VxdWVuY2VOdW1iZXIiKTsK
KyAgICByZXR1cm4gMDsKK30KKworLSAodm9pZClzbGlkZURyYWdnZWRJbWFnZVRvOihOU1BvaW50
KXNjcmVlblBvaW50Cit7CisgICAgTlNMb2coQCJXZWJLaXRUZXN0UnVubmVyIGRvZXNuJ3Qgc3Vw
cG9ydCBzbGlkZURyYWdnZWRJbWFnZVRvOiIpOworfQorCistIChOU0FycmF5ICopbmFtZXNPZlBy
b21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24K
K3sKKyAgICBOU0xvZyhAIldlYktpdFRlc3RSdW5uZXIgZG9lc24ndCBzdXBwb3J0IG5hbWVzT2ZQ
cm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246Iik7CisgICAgcmV0dXJuIG5pbDsKK30K
KworLSAoTlNEcmFnZ2luZ0Zvcm1hdGlvbilkcmFnZ2luZ0Zvcm1hdGlvbgoreworICAgIHJldHVy
biBOU0RyYWdnaW5nRm9ybWF0aW9uRGVmYXVsdDsKK30KKworLSAodm9pZClzZXREcmFnZ2luZ0Zv
cm1hdGlvbjooTlNEcmFnZ2luZ0Zvcm1hdGlvbilmb3JtYXRpb24KK3sKKyAgICAvLyBJZ25vcmVk
LgorfQorCistIChCT09MKWFuaW1hdGVzVG9EZXN0aW5hdGlvbgoreworICAgIHJldHVybiBOTzsK
K30KKworLSAodm9pZClzZXRBbmltYXRlc1RvRGVzdGluYXRpb246KEJPT0wpZmxhZworeworICAg
IC8vIElnbm9yZWQuCit9CisKKy0gKE5TSW50ZWdlciludW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9w
Cit7CisgICAgcmV0dXJuIDE7Cit9CisKKy0gKHZvaWQpc2V0TnVtYmVyT2ZWYWxpZEl0ZW1zRm9y
RHJvcDooTlNJbnRlZ2VyKW51bWJlcgoreworICAgIC8vIElnbm9yZWQuCit9CisKKy0gKHZvaWQp
ZW51bWVyYXRlRHJhZ2dpbmdJdGVtc1dpdGhPcHRpb25zOihOU0VudW1lcmF0aW9uT3B0aW9ucyll
bnVtT3B0cyBmb3JWaWV3OihOU1ZpZXcgKil2aWV3IGNsYXNzZXM6KE5TQXJyYXkgKiljbGFzc0Fy
cmF5IHNlYXJjaE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKXNlYXJjaE9wdGlvbnMgdXNpbmdCbG9j
azoodm9pZCAoXikoTlNEcmFnZ2luZ0l0ZW0gKmRyYWdnaW5nSXRlbSwgTlNJbnRlZ2VyIGlkeCwg
Qk9PTCAqc3RvcCkpYmxvY2sKK3sKKyAgICAvLyBJZ25vcmVkLgorfQorCitAZW5kCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCAr
MSAjIworTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgJKHJldmlz
aW9uIDApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZl
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJLaXRUZXN0UnVubmVyRXZlbnRfaAorI2RlZmluZSBXZWJLaXRUZXN0UnVubmVyRXZlbnRf
aAorCitAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJFdmVudCA6IE5TRXZlbnQKK0BlbmQKKwor
CisjZW5kaWYgLy8gV2ViS2l0VGVzdFJ1bm5lckV2ZW50X2gKClByb3BlcnR5IGNoYW5nZXMgb246
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJFdmVudC5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFj
L1dlYktpdFRlc3RSdW5uZXJFdmVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0JKHJldmlzaW9uIDApCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmgiCisKKyNpbXBvcnQgIkV2ZW50U2VuZGVy
UHJveHkuaCIKKyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdl
YlZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdUUjsKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJFdmVudAorCisrIChOU1BvaW50KW1vdXNlTG9jYXRpb24KK3sKKyAgICBXS1Bv
aW50IGxvY2F0aW9uID0gVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLmV2ZW50U2VuZGVyUHJveHko
KS0+cG9zaXRpb24oKTsKKyAgICByZXR1cm4gW1Rlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWlu
V2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRCYXNlVG9TY3JlZW46TlNNYWtlUG9p
bnQobG9jYXRpb24ueCwgbG9jYXRpb24ueSldOworfQorCitAZW5kCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRXZlbnQubW0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCitMRgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>