<?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>42688</bug_id>
          
          <creation_ts>2010-07-20 15:14:32 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs layoutTestController.setWindowIsKey</short_desc>
          <delta_ts>2011-10-10 14:01:09 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>gustavo</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253968</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-20 15:14:32 -0700</bug_when>
    <thetext>WebKitTestRunner needs layoutTestController.setWindowIsKey</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254011</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-20 15:32:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/8213853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479372</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-06 12:10:36 -0700</bug_when>
    <thetext>*** Bug 69397 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479379</commentid>
    <comment_count>3</comment_count>
      <attachid>109992</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-06 12:20:44 -0700</bug_when>
    <thetext>Created attachment 109992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479447</commentid>
    <comment_count>4</comment_count>
      <attachid>110012</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-06 13:53:59 -0700</bug_when>
    <thetext>Created attachment 110012
Patch which fixes Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479578</commentid>
    <comment_count>5</comment_count>
      <attachid>110012</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-06 15:48:13 -0700</bug_when>
    <thetext>Comment on attachment 110012
Patch which fixes Windows

Attachment 110012 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9998003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479605</commentid>
    <comment_count>6</comment_count>
      <attachid>110012</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-06 16:33:09 -0700</bug_when>
    <thetext>Comment on attachment 110012
Patch which fixes Windows

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

&gt; Tools/ChangeLog:9
&gt; +        Since this does window-level stuff, it now has to be asynchronous, so add

I don’t understand that. Can’t it be a synchronous call from the web process to the UI process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479622</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-06 16:47:10 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 110012 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110012&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:9
&gt; &gt; +        Since this does window-level stuff, it now has to be asynchronous, so add
&gt; 
&gt; I don’t understand that. Can’t it be a synchronous call from the web process to the UI process?

It could, and I guess we don&apos;t care for testing-only methods. I was following Joh&apos;s lead on the addChromeInputField stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481116</commentid>
    <comment_count>8</comment_count>
      <attachid>110395</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-10 13:43:45 -0700</bug_when>
    <thetext>Created attachment 110395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481135</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-10 14:01:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/97081</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109992</attachid>
            <date>2011-10-06 12:20:44 -0700</date>
            <delta_ts>2011-10-06 13:53:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42688-20111006122043.patch</filename>
            <type>text/plain</type>
            <size>25380</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY3NzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5Mjc4MmVmYmFhOTE0Y2Q3MTZmNzMy
ZmViYzQ0M2I3ZTkyNDk2ZDgxLi5mYzc1ZGQ4MTk5MjkzM2MyOTA2YTU5NmJmNzU0NjA5NzQ1OTZm
NTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkanVzdCB0aGUgU2tpcHBlZCBsaXN0
IGZvciBXZWJLaXQyLCB1bnNraXBwaW5nIHNvbWUgdGVzdHMsIGJ1dAorICAgICAgICBrZWVwaW5n
IG90aGVycyBza2lwcGVkIGZvciBuZXcgcmVhc29ucy4KKworICAgICAgICAqIHBsYXRmb3JtL3dr
Mi9Ta2lwcGVkOgorCiAyMDExLTEwLTAzICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2ZsZXhib3hdIHRha2UgbWFyZ2luQmVmb3JlRm9yQ2hpbGQgaW50byBhY2Nv
dW50IHdoZW4gcG9zaXRpb25pbmcgY2hpbGRyZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5k
ZXggNDQzYzlhMDQ0MjQyOTJhZDU4MWI2YWMwYzVlOTliMmJiMmM1OTE2MS4uNDUzYWU3OWVlMTFk
ZjNhZjk1NTM5ZjcyM2ExMzZlMjVhNzEzODU0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
QEAgLTY0Miw3ICs2NDIsOSBAQCBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9uZXN0ZWQtZXhl
Y3V0aW9uLmh0bWwKIAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9s
bGVyLnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIKICMgPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjY4NT4KK2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWFuZC1m
b2N1cy1yaW5nLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL2Rlc2lnbm1vZGUtbm8tY2FyZXQuaHRt
bAorZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWJhY2tncm91bmQuaHRtbAogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1vbkZvY3VzLmh0bWwKIHBsYXRmb3JtL21hYy9zY3JvbGxiYXJzL2tleS13
aW5kb3ctbm90LWZpcnN0LXJlc3BvbmRlci5odG1sCiAKQEAgLTY1NCwxNiArNjU2LDE1IEBAIGZh
c3QvZW5jb2RpbmcvaWRuLXNlY3VyaXR5Lmh0bWwKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MjY4Nz4KIGZhc3QvZXZlbnRzL2tleXByZXNzLWluc2VydC10YWIu
aHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
V2luZG93SXNLZXkKLSMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjY4OD4KLWVkaXRpbmcvc2VsZWN0aW9uLzQ5NzUxMjAuaHRtbAotZWRpdGluZy9zZWxlY3Rpb24v
Y2FyZXQtYW5kLWZvY3VzLXJpbmcuaHRtbAotZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWJh
Y2tncm91bmQuaHRtbAorIyBUZXN0cyB1c2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5k
b3dJc0tleSBuZWVkIHRvIGJlIHVwZGF0ZWQgdG8gaGFuZGxlIGFzeW5jIGNhbGxiYWNrCisjIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTA+CiBmYXN0L2V2ZW50
cy9ibHVyLWZvY3VzLXdpbmRvdy1zaG91bGQtYmx1ci1mb2N1cy1lbGVtZW50Lmh0bWwKLWZhc3Qv
ZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1ci1vbmZvY3VzLmh0bWwKLWZhc3QvZmxleGJv
eC9ob3Jpem9udGFsLWJveC1mbG9hdC1jcmFzaC5odG1sCiBwbHVnaW5zL25ldHNjYXBlLXBsdWdp
bi1zZXR3aW5kb3ctc2l6ZS0yLmh0bWwKIAorIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91
dFRlc3RDb250cm9sbGVyLmFib3J0TW9kYWwKKyMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTU0OD4KK2Zhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1
ci1vbmZvY3VzLmh0bWwKKwogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEVkaXRpbmdCZWhhdmlvcgogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNjg5PgogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAz
Lmh0bWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA4MDgwODEwOWJlY2NiZWM0Y2I2MzUyMjVjOWI2NTEwMDI4MjQ4ODI4Li5iNGJjZWI1Zjg2ZmY2
OTcwZjc1ZDc1NmRjNDkxMGRhZjNhZTYwMzM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMTAtMDYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1
bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleSgpIGluIFdlYktpdFRlc3RSdW5uZXIu
CisgICAgICAgIFNpbmNlIHRoaXMgZG9lcyB3aW5kb3ctbGV2ZWwgc3R1ZmYsIGl0IG5vdyBoYXMg
dG8gYmUgYXN5bmNocm9ub3VzLCBzbyBhZGQKKyAgICAgICAgYSBjYWxsYmFjayB0byB0aGUgbGF5
b3V0VGVzdENvbnRyb2xsZXIgbWV0aG9kIHRoYXQgZnV0dXJlIHRlc3RzIGNhbiB1c2UuCisgICAg
ICAgIE9uZSBvciB0d28gdGVzdHMgYXJlIHN0aWxsIHNraXBwZWQgZm9yIFdLMiBiZWNhdXNlIHRo
ZXkgbmVlZCB0byB1c2UgdGhpcyBjYWxsYmFjaworICAgICAgICAoYnVnIDY5NTUwKS4KKyAgICAg
ICAgCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoc2V0V2luZG93SXNLZXlDYWxsYmFjayk6IENhbGwgdGhlIGNhbGxiYWNrIChpZiBw
cm92aWRlZCkgYWZ0ZXIgY2hhbmdpbmcKKyAgICAgICAgdGhlIHdpbmRvdyBrZXkgc3RhdHVzLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaWRsOiBBZGQgc2V0V2luZG93SXNLZXkoKS4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKTogSGFuZGxlIHRoZSAiU2V0
V2luZG93SXNLZXkiIG1lc3NhZ2UuCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpwb3N0
U2V0V2luZG93SXNLZXkpOiBQb3N0IHRoZSAiU2V0V2luZG93SXNLZXkiIG1lc3NhZ2UuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOiBVc2UgYW4gZW51bSBmb3IKKyAgICAgICAgY2FsbGJhY2sgSURzLCByYXRoZXIg
dGhhbiBtYWdpYyBudW1iZXJzLiBBZGQgb25lIGZvciBzZXRXaW5kb3dJc0tleS4KKyAgICAgICAg
KFdUUjo6Y2FjaGVMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZENocm9tZUlucHV0RmllbGQpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCk6CisgICAgICAg
IChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpmb2N1c1dlYlZpZXcpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkpOgorICAgICAgICAoV1RSOjpM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbEFkZENocm9tZUlucHV0RmllbGRDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpjYWxsUmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZENhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxG
b2N1c1dlYlZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2V0V2luZG93SXNLZXlDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6IEFkZCBhbiBOU1dpbmRvdyBzdWJjbGFzcwor
ICAgICAgICBzbyB0aGF0IHdlIGNhbiBvdmVycmlkZSAtaXNLZXlXaW5kb3cuIFVzZSBhIGJvb2xl
YW4gbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIHRvIHRyYWNrIHdpbmRvdyBrZXkgc3RhdHVzLgor
ICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dJc0tleSk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpydW5Nb2RhbCk6IENoYW5nZSB0aGUgd2luZG93IGtleSBzdGF0dXMgd2hlbiBzaG93aW5nIGEg
bW9kYWwgYWxlcnQsIGFzIERSVCBkb2VzLgorICAgICAgICAoV1RSOjpjbG9zZU90aGVyUGFnZSk6
IFVzZSB0aGUgc2FtZSBjYXN0IGFzIG90aGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdUUjo6Zm9j
dXMpOiBJbXBsZW1lbnQgdG8gY2FsbCBzZXRXaW5kb3dJc0tleSh0cnVlKQorICAgICAgICAoV1RS
Ojp1bmZvY3VzKTogSW1wbGVtZW50IHRvIGNhbGwgc2V0V2luZG93SXNLZXkoZmFsc2UpCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOiBBZGQgcGFnZSBjYWxs
YmFja3MgZm9yIGZvY3VzIGFuZCB1bmZvY3VzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRDb21taXRM
b2FkRm9yRnJhbWUpOiBIb29rIHVwIGNhbGxiYWNrIHRvIGZvY3VzIHRoZSB3ZWIgdmlldywgYXMg
RFJUIGRvZXMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAo
V1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
OiBIYW5kbGUgIlNldFdpbmRvd0lzS2V5IiBtZXNzYWdlLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3Jt
V2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KTogSW5pdGlhbGl6ZSBtX3dpbmRvd0lzS2V5IHRvIHRy
dWUuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1t
OgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGlzS2V5V2luZG93XSk6IE92ZXJy
aWRkZW4gdG8gdXNlIG1fd2luZG93SXNLZXkgZm9yIGtleSBzdGF0dXMuCisgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KTogTWFrZSBhIFdlYktpdFRlc3RSdW5u
ZXJXaW5kb3cuCisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmll
dyk6IENsZWFuIHVwIHRoZSBiYWNrIHBvaW50ZXIgb24gdGhlIE5TV2luZG93IHN1YmNsYXNzLCBp
biBjYXNlIGl0IG91dGxpdmVzIHVzLgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OmZv
Y3VzKTogU2V0IHRoZSB2aWV3IGFzIHRoZSBmaXJzdCByZXNwb25kZXIsIGFuZCB0aGUgd2luZG93
IGFzIHRoZSBrZXkgd2luZG93LCBhcyBEUlQgZG9lcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKTogZm9jdXMgdGhlIHdlYiB2aWV3LCBh
cyBEUlQgZG9lcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmll
d1F0LmNwcDoKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcp
OiBJbml0aWFsaXplIG1fd2luZG93SXNLZXkgdG8gdHJ1ZS4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwOgorICAgICAgICAoV1RSOjptX3dpbmRv
d0lzS2V5KTogSW5pdGlhbGl6ZSBtX3dpbmRvd0lzS2V5IHRvIHRydWUuCisKIDIwMTEtMTAtMDUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gV2Vi
S2l0VGVzdFJ1bm5lciwgdGV4dCBoYXMgZm9udCBzbW9vdGhpbmcgaW4gcGl4ZWwgc25hcHNob3Rz
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
MDM2MzkzNjk4M2Q5MTBhYWRjNjcwNGFjOTk4NTM0YTc1ODUxMTYxOC4uYzIyMzU3ZWVlNzdiOTc4
ZTQyMmNkMzM0YmRjN2VhNWRmZGQ4MTdkYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTY3OSw2ICsxNjc5LDEwIEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldFdpbmRvd0lzS2V5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0
aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2Jq
ZWN0KSk7CiAgICAgY29udHJvbGxlci0+c2V0V2luZG93SXNLZXkoSlNWYWx1ZVRvQm9vbGVhbihj
b250ZXh0LCBhcmd1bWVudHNbMF0pKTsKIAorICAgIC8vIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMg
YSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBvbmNlIHRoZSB3aW5kb3cga2V5IHN0YXR1cyBoYXMg
Y2hhbmdlZC4KKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAyKQorICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGNvbnRleHQsIEpTVmFsdWVUb09iamVjdChjb250ZXh0LCBhcmd1bWVudHNb
MV0sIDApLCB0aGlzT2JqZWN0LCAwLCAwLCAwKTsKKwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250
cm9sbGVyLmlkbAppbmRleCBkZWRjZmEwODE3YmMyMmRjZTBiNTczNmFiZmMwMDhhMDNlZjA4MjI0
Li5kMGZkZWNmODFhZGMwZjk1Nzg3OTAzNmU5MjJhMmZmNTJjM2Y3NDYzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbApAQCAtMTI3LDYgKzEyNyw3IEBAIG1v
ZHVsZSBXVFIgewogICAgICAgICB2b2lkIGFkZENocm9tZUlucHV0RmllbGQoaW4gb2JqZWN0IGNh
bGxiYWNrKTsKICAgICAgICAgdm9pZCByZW1vdmVDaHJvbWVJbnB1dEZpZWxkKGluIG9iamVjdCBj
YWxsYmFjayk7CiAgICAgICAgIHZvaWQgZm9jdXNXZWJWaWV3KGluIG9iamVjdCBjYWxsYmFjayk7
CisgICAgICAgIHZvaWQgc2V0V2luZG93SXNLZXkoaW4gYm9vbGVhbiBpc0tleSwgaW4gb2JqZWN0
IGNhbGxiYWNrKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDJjOWYwMDg0NmRk
NjNjOTRjYjhjMGE0NGRhZmY1NzlkOWM4MGE0MmEuLmRmODgwNTFjNmQyODI0YmYxNjhmZDA0YTIx
NTE4NTJjYTRkNmM4ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNzEsNiArMTcxLDExIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lLCBXS1R5cGVSZWYgbWVzc2FnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxTZXRXaW5kb3dJ
c0tleUNhbGxiYWNrIikpIHsKKyAgICAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+Y2FsbFNl
dFdpbmRvd0lzS2V5Q2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBlcnJvck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFcnJvciIpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gZXJyb3JNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVW5rbm93biIpKTsKICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBlcnJv
ck1lc3NhZ2VOYW1lLmdldCgpLCBlcnJvck1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI3Nyw0ICsy
ODIsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdEZvY3VzV2ViVmlldygpCiAgICAgV0tC
dW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2
b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFdpbmRvd0lzS2V5IikpOworICAgIFdLUmV0YWluUHRy
PFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKGlzS2V5
KSk7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgK
aW5kZXggZjE5MTI4OTZhYTZhYTg0N2M2OGRiMThlZDc4ZmVkMjY0MjYxMWQyYy4uOWY4ZjY2NjVk
NTg2ODBjNTRlNjVmODBiYjM4MjljOGRmYTBiYzViNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNzksNiAr
NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwogICAg
IHZvaWQgcG9zdFJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB2b2lkIHBvc3RGb2N1c1dl
YlZpZXcoKTsKKyAgICB2b2lkIHBvc3RTZXRXaW5kb3dJc0tleShib29sKTsKIAogcHJpdmF0ZToK
ICAgICBJbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAz
YmY1MjIzNTU1NjYyY2EzZDZjOTljZTU5YTMzZjc5OWU4MjJkZWUzLi5mNDQ5YmIwM2M4YWI2NWQz
MGJiZjg1YTk3ZTAzNjI4MDczODFjYzA4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApA
QCAtNTI1LDggKzUyNSwxOCBAQCBzdGF0aWMgQ2FsbGJhY2tNYXAmIGNhbGxiYWNrTWFwKCkKICAg
ICByZXR1cm4gbWFwOwogfQogCitlbnVtIHsKKyAgICBBZGRDaHJvbWVJbnB1dEZpZWxkQ2FsbGJh
Y2tJRCwKKyAgICBSZW1vdmVDaHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJRCwKKyAgICBGb2N1c1dl
YlZpZXdDYWxsYmFja0lELAorICAgIFNldFdpbmRvd0lzS2V5Q2FsbGJhY2tJRAorfTsKKwogc3Rh
dGljIHZvaWQgY2FjaGVMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogeworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJl
dHVybjsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0
TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQo
bWFpbkZyYW1lKTsKICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBjYWxsYmFjayk7CkBAIC01
NDYsMzUgKzU1Niw0NiBAQCBzdGF0aWMgdm9pZCBjYWxsTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxs
YmFjayh1bnNpZ25lZCBpbmRleCkKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkQ2hy
b21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewotICAgIGNhY2hlTGF5b3V0VGVz
dENvbnRyb2xsZXJDYWxsYmFjaygxLCBjYWxsYmFjayk7CisgICAgY2FjaGVMYXlvdXRUZXN0Q29u
dHJvbGxlckNhbGxiYWNrKEFkZENocm9tZUlucHV0RmllbGRDYWxsYmFja0lELCBjYWxsYmFjayk7
CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RBZGRDaHJvbWVJbnB1dEZpZWxkKCk7
CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUNocm9tZUlucHV0RmllbGQo
SlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKLSAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2Fs
bGJhY2soMiwgY2FsbGJhY2spOworICAgIGNhY2hlTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxsYmFj
ayhSZW1vdmVDaHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogICAgIEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5wb3N0UmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogfQogCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmb2N1c1dlYlZpZXcoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKIHsKLSAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soMywgY2FsbGJhY2sp
OworICAgIGNhY2hlTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxsYmFjayhGb2N1c1dlYlZpZXdDYWxs
YmFja0lELCBjYWxsYmFjayk7CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RGb2N1
c1dlYlZpZXcoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNL
ZXkoYm9vbCBpc0tleSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBjYWNoZUxheW91dFRl
c3RDb250cm9sbGVyQ2FsbGJhY2soU2V0V2luZG93SXNLZXlDYWxsYmFja0lELCBjYWxsYmFjayk7
CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RTZXRXaW5kb3dJc0tleShpc0tleSk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxBZGRDaHJvbWVJbnB1dEZpZWxk
Q2FsbGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKDEpOwor
ICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKEFkZENocm9tZUlucHV0RmllbGRD
YWxsYmFja0lEKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFJlbW92ZUNo
cm9tZUlucHV0RmllbGRDYWxsYmFjaygpCiB7Ci0gICAgY2FsbExheW91dFRlc3RDb250cm9sbGVy
Q2FsbGJhY2soMik7CisgICAgY2FsbExheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soUmVtb3Zl
Q2hyb21lSW5wdXRGaWVsZENhbGxiYWNrSUQpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29u
dHJvbGxlckNhbGxiYWNrKDMpOworICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNr
KEZvY3VzV2ViVmlld0NhbGxiYWNrSUQpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2V0V2luZG93SXNLZXlDYWxsYmFjaygpCit7CisgICAgY2FsbExheW91dFRlc3RDb250
cm9sbGVyQ2FsbGJhY2soU2V0V2luZG93SXNLZXlDYWxsYmFja0lEKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNzI3MzhhNGU1Yjc0NjI5Yjlk
Nzc0Zjg4ODc4ZDZjZWI2N2FlZjY1NS4uNjU4NjIxY2NkMzk4OWUyZjIxNmNlMjI2YTViNjA5Yzgw
ODhkNDBiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDkgKzE4MSwxMiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYpOwogICAgIHZv
aWQgcmVtb3ZlQ2hyb21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmKTsKICAgICB2b2lkIGZvY3VzV2Vi
VmlldyhKU1ZhbHVlUmVmKTsKKyAgICB2b2lkIHNldFdpbmRvd0lzS2V5KGJvb2wsIEpTVmFsdWVS
ZWYgY2FsbGJhY2spOworCiAgICAgdm9pZCBjYWxsQWRkQ2hyb21lSW5wdXRGaWVsZENhbGxiYWNr
KCk7CiAgICAgdm9pZCBjYWxsUmVtb3ZlQ2hyb21lSW5wdXRGaWVsZENhbGxiYWNrKCk7CiAgICAg
dm9pZCBjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2soKTsKKyAgICB2b2lkIGNhbGxTZXRXaW5kb3dJ
c0tleUNhbGxiYWNrKCk7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSB3YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lckludGVydmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmgKaW5kZXggODg4NjYwNTMzMjZlNjA3MDYyMjFlM2NhYWMyYzM0YTNlM2JlOWE5
Ni4uYTdjN2ZiMDQ5OTgzNDFiODMxY2EzODg3MGNiOWNjMWEzYzM1Y2E4ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC0zNCwxMyArMzQsMTMgQEAgdHlwZWRl
ZiBRU0dWaWV3KiBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBf
X0FQUExFX18KICNpZiBfX09CSkNfXwogQGNsYXNzIFdLVmlldzsKLUBjbGFzcyBOU1dpbmRvdzsK
K0BjbGFzcyBXZWJLaXRUZXN0UnVubmVyV2luZG93OwogI2Vsc2UKIGNsYXNzIFdLVmlldzsKLWNs
YXNzIE5TV2luZG93OworY2xhc3MgV2ViS2l0VGVzdFJ1bm5lcldpbmRvdzsKICNlbmRpZgogdHlw
ZWRlZiBXS1ZpZXcqIFBsYXRmb3JtV0tWaWV3OwotdHlwZWRlZiBOU1dpbmRvdyogUGxhdGZvcm1X
aW5kb3c7Cit0eXBlZGVmIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cqIFBsYXRmb3JtV2luZG93Owog
I2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0eXBlZGVmIFdLVmlld1Jl
ZiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVdpbmRvdzsKQEAgLTc0LDEw
ICs3NCwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAg
dm9pZCByZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAgdm9pZCBtYWtlV2ViVmlld0ZpcnN0
UmVzcG9uZGVyKCk7CisgICAgdm9pZCBzZXRXaW5kb3dJc0tleShib29sIGlzS2V5KSB7IG1fd2lu
ZG93SXNLZXkgPSBpc0tleTsgfQorICAgIGJvb2wgd2luZG93SXNLZXkoKSBjb25zdCB7IHJldHVy
biBtX3dpbmRvd0lzS2V5OyB9CiAKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1XS1ZpZXcgbV92aWV3
OwogICAgIFBsYXRmb3JtV2luZG93IG1fd2luZG93OworICAgIGJvb2wgbV93aW5kb3dJc0tleTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCA2NWY3ODMyOGViYWNhM2U0ODFhYjQzNWEyZGQ1MjBiOTY1YjFkYjFl
Li4xZTZkODY3OGU1MjhjNDdhMWNhNWRiMWNlZTdmMmZiODEwNTU1MTZhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTI4LDE2ICsxMjgsMzEgQEAgc3Rh
dGljIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCBXS1NlY3VyaXQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoV0tQ
YWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgcnVuTW9kYWwoc3Rh
dGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
KTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZp
ZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgdmlldy0+c2V0V2luZG93
SXNLZXkoZmFsc2UpOworICAgIHJ1bk1vZGFsKHZpZXcpOworICAgIHZpZXctPnNldFdpbmRvd0lz
S2V5KHRydWUpOwogfQogCiBzdGF0aWMgdm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXS1BhZ2VDbG9zZShwYWdlKTsKLSAg
ICBjb25zdCBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBQbGF0Zm9y
bVdlYlZpZXcqPihjbGllbnRJbmZvKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CiAgICAgZGVsZXRlIHZpZXc7CiB9CiAKK3N0YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9
IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKTsKKyAgICB2aWV3LT5zZXRXaW5kb3dJc0tleSh0cnVlKTsKK30KKworc3RhdGljIHZvaWQg
dW5mb2N1cyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgdmlldy0+c2V0V2luZG93SXNLZXkoZmFs
c2UpOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1Bh
Z2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRN
b2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopCiB7CiAgICAgUGxhdGZv
cm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VHZXRDb250ZXh0KG9s
ZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSkpOwpAQCAtMTUyLDggKzE2Nyw4IEBA
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQ
YWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAg
IGNsb3NlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyB0YWtlRm9jdXMKLSAgICAgICAgMCwgLy8g
Zm9jdXMKLSAgICAgICAgMCwgLy8gdW5mb2N1cworICAgICAgICBmb2N1cywKKyAgICAgICAgdW5m
b2N1cywKICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0ICAgICAgICAKICAgICAgICAg
MCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdFBy
b21wdApAQCAtMzUwLDcgKzM2NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUo
aW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgMCwgLy8gZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlkQ29tbWl0TG9hZEZv
ckZyYW1lCisgICAgICAgIGRpZENvbW1pdExvYWRGb3JGcmFtZSwKICAgICAgICAgMCwgLy8gZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1l
LAogICAgICAgICAwLCAvLyBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lCkBAIC02MDgsNiAr
NjIzLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAKIC8vIFdLUGFnZUxvYWRlckNsaWVu
dAogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHBhZ2UsIGZyYW1lKTsKK30KKwog
dm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRpZEZpbmlzaExvYWRGb3JGcmFtZShwYWdlLCBmcmFtZSk7CkBAIC02MTgsNiAr
NjM4LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJv
bGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+cHJvY2Vzc0RpZENyYXNoKCk7
CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSkKK3sKKyAgICBwbGF0Zm9ybURpZENvbW1pdExvYWRG
b3JGcmFtZShwYWdlLCBmcmFtZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSkKIHsKICAgICBp
ZiAobV9zdGF0ZSAhPSBSZXNldHRpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKaW5kZXggNmFiODk4MTQzNjA0M2NiY2VmYzRiNDQ3ODlkODE2ZmQ5NjM2ZmU4Zi4uZDBk
MjE1MTRlY2E5NDVlMDY3MmI0YjM0ODA2ZGRhMzEzYWVjNGI5MiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNzEsNiArNzEsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250
ZXh0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1l
b3V0KTsKKyAgICB2b2lkIHBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZik7CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQYXRoKCk7CiAg
ICAgdm9pZCBpbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpOwogCkBAIC04Myw4ICs4NCwx
MSBAQCBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwg
V0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKIAogICAgIC8vIFdLUGFnZUxvYWRlckNsaWVudAotICAg
IHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7Ci0gICAgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZik7CisKKyAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYpOwogCiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdL
UGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jh
c2goKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMDE4
OWEyNTVmZTZhMDQwZjg1MDMxMTcwMjcwOTk3YzUxYWE0YzhmYy4uNGNiYWY4NDcwYzE0OWQ4MjE1
YmExOTNiZWNlMTYxM2U5MDU2NTJiZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTI3MCw2ICsyNzAsMTUgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0V2luZG93SXNLZXkiKSkgeworICAgICAgICBBU1NFUlQo
V0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAg
ICAgV0tCb29sZWFuUmVmIGlzS2V5VmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1l
c3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3
KCktPnNldFdpbmRvd0lzS2V5KFdLQm9vbGVhbkdldFZhbHVlKGlzS2V5VmFsdWUpKTsKKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2FsbFNldFdpbmRvd0lzS2V5Q2FsbGJhY2siKSk7Cisg
ICAgICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkuY29udGV4dCgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgMCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKaW5kZXggMzcz
NWRjNWU2YzJlNThiOWI5ODFkNDQzYWM1NTY3NzhkZjA0NzYwNi4uMTY0NmI0NWFiOTY1OTZiZWYy
OGY1YTBlNDI4ZjRhZjgxZGI2MDlkMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBX
VFIgewogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkKICAgICA6IG1fdmlldyhXS1ZpZXdDcmVhdGUo
Y29udGV4dCwgcGFnZUdyb3VwKSkKICAgICAsIG1fd2luZG93KGd0a193aW5kb3dfbmV3KEdUS19X
SU5ET1dfUE9QVVApKQorICAgICwgbV93aW5kb3dJc0tleSh0cnVlKQogewogICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIobV93aW5kb3cpLCBHVEtfV0lER0VUKG1fdmlldykpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0K
aW5kZXggNDY5MzgzZDFhMDgzOGU5M2E1MDg5NzRmYTBlOGNjYzU1MDhiNzNmOS4uMGQyZDM4NGEz
YTYwNWIxOTNhYWE5ZWMwNTAwNDk2NTY2ZGQzOGYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMjUsMTUgKzI1LDMyIEBACiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKIAorQGludGVyZmFjZSBXZWJLaXRUZXN0UnVu
bmVyV2luZG93IDogTlNXaW5kb3cgeworICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBfcGxhdGZv
cm1XZWJWaWV3OworfQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9y
bVdlYlZpZXcqIHBsYXRmb3JtV2ViVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJXaW5kb3cKK0BzeW50aGVzaXplIHBsYXRmb3JtV2ViVmlldyA9IF9wbGF0Zm9y
bVdlYlZpZXc7CisKKy0gKEJPT0wpaXNLZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gX3BsYXRmb3Jt
V2ViVmlldyA/IF9wbGF0Zm9ybVdlYlZpZXctPndpbmRvd0lzS2V5KCkgOiBZRVM7Cit9CitAZW5k
CisKIG5hbWVzcGFjZSBXVFIgewogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorICAg
IDogbV93aW5kb3dJc0tleSh0cnVlKQogewogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCk7CiAgICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZl07
CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFso
TlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNp
emUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9IFtb
TlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6
TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOworICAgIG1f
d2luZG93LnBsYXRmb3JtV2ViVmlldyA9IHRoaXM7CiAgICAgW21fd2luZG93IHNldENvbG9yU3Bh
Y2U6W05TQ29sb3JTcGFjZSBnZW5lcmljUkdCQ29sb3JTcGFjZV1dOwogICAgIFtbbV93aW5kb3cg
Y29udGVudFZpZXddIGFkZFN1YnZpZXc6bV92aWV3XTsKICAgICBbbV93aW5kb3cgb3JkZXJCYWNr
Om5pbF07CkBAIC00OCw2ICs2NSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1
bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0
Zm9ybVdlYlZpZXcoKQogeworICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmlldyA9IDA7CiAgICAg
W21fd2luZG93IGNsb3NlXTsKICAgICBbbV93aW5kb3cgcmVsZWFzZV07CiAgICAgW21fdmlldyBy
ZWxlYXNlXTsKQEAgLTYwLDcgKzc4LDggQEAgV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFn
ZSgpCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7Ci0gICAgLy8gSW1wbGVtZW50
LgorICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKKyAgICBzZXRXaW5k
b3dJc0tleSh0cnVlKTsKIH0KIAogV0tSZWN0IFBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUo
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpp
bmRleCBjODg0YzhmYjExYzgyMjhlMWFjY2Q3MWNmODg5YzFiZTc3ZDI5Y2JkLi41OWI5MTMzNmVm
YzU4ZWVlMmExYTk1OWU2MzZiNzFiMzg5YzJiMWYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNjQsNiArNjQsMTEgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCiB7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQoreworICAgIG1haW5XZWJWaWV3KCktPmZvY3VzKCk7Cit9
CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykK
IHsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3ZpZXctPnBsYXRmb3JtVmlldygpIHdpbmRvd107
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCmlu
ZGV4IDdhZjE1NTMyMWFlZDUwY2I5ZTViYjBkNTMyNWY4ZjlmMWRlYmI0YzEuLjU0MzZiMzZkYTQw
ZWEyOTg3NjY0MjJlMWY3Yjg0ODljMzk1ODVkNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBAIC02OSw2ICs2OSw3IEBAIHByaXZhdGU6
CiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogICAgIDogbV92aWV3KG5ldyBRRGVza3Rv
cFdlYlZpZXcoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKICAgICAsIG1fd2luZG93KG5ldyBX
cmFwcGVyV2luZG93KG1fdmlldykpCisgICAgLCBtX3dpbmRvd0lzS2V5KHRydWUpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dp
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3Bw
CmluZGV4IDM0MjA1YTBmZTYwOTBhYzVkNzZmZDkzYzZjMTJmZWQzODRiMWY0ZDMuLmQ2MTIwODBi
MTBlNWQ4YjMwZWJkZWE5MTFlZDExM2U0ZjEzYTY2NjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcApAQCAtNDksNiArNDksNyBAQCBz
dGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCkKIH0KIAogUGxhdGZvcm1XZWJWaWV3OjpQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZikKKyAgICAsIG1fd2luZG93SXNLZXkodHJ1ZSkKIHsKICAgICByZWdpc3Rlcldp
bmRvd0NsYXNzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110012</attachid>
            <date>2011-10-06 13:53:59 -0700</date>
            <delta_ts>2011-10-10 13:43:41 -0700</delta_ts>
            <desc>Patch which fixes Windows</desc>
            <filename>bug-42688-20111006135357.patch</filename>
            <type>text/plain</type>
            <size>25380</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY3NzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5Mjc4MmVmYmFhOTE0Y2Q3MTZmNzMy
ZmViYzQ0M2I3ZTkyNDk2ZDgxLi5mYzc1ZGQ4MTk5MjkzM2MyOTA2YTU5NmJmNzU0NjA5NzQ1OTZm
NTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkanVzdCB0aGUgU2tpcHBlZCBsaXN0
IGZvciBXZWJLaXQyLCB1bnNraXBwaW5nIHNvbWUgdGVzdHMsIGJ1dAorICAgICAgICBrZWVwaW5n
IG90aGVycyBza2lwcGVkIGZvciBuZXcgcmVhc29ucy4KKworICAgICAgICAqIHBsYXRmb3JtL3dr
Mi9Ta2lwcGVkOgorCiAyMDExLTEwLTAzICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2ZsZXhib3hdIHRha2UgbWFyZ2luQmVmb3JlRm9yQ2hpbGQgaW50byBhY2Nv
dW50IHdoZW4gcG9zaXRpb25pbmcgY2hpbGRyZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5k
ZXggNDQzYzlhMDQ0MjQyOTJhZDU4MWI2YWMwYzVlOTliMmJiMmM1OTE2MS4uNDUzYWU3OWVlMTFk
ZjNhZjk1NTM5ZjcyM2ExMzZlMjVhNzEzODU0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
QEAgLTY0Miw3ICs2NDIsOSBAQCBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9uZXN0ZWQtZXhl
Y3V0aW9uLmh0bWwKIAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9s
bGVyLnNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIKICMgPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjY4NT4KK2VkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LWFuZC1m
b2N1cy1yaW5nLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL2Rlc2lnbm1vZGUtbm8tY2FyZXQuaHRt
bAorZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWJhY2tncm91bmQuaHRtbAogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1vbkZvY3VzLmh0bWwKIHBsYXRmb3JtL21hYy9zY3JvbGxiYXJzL2tleS13
aW5kb3ctbm90LWZpcnN0LXJlc3BvbmRlci5odG1sCiAKQEAgLTY1NCwxNiArNjU2LDE1IEBAIGZh
c3QvZW5jb2RpbmcvaWRuLXNlY3VyaXR5Lmh0bWwKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MjY4Nz4KIGZhc3QvZXZlbnRzL2tleXByZXNzLWluc2VydC10YWIu
aHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
V2luZG93SXNLZXkKLSMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjY4OD4KLWVkaXRpbmcvc2VsZWN0aW9uLzQ5NzUxMjAuaHRtbAotZWRpdGluZy9zZWxlY3Rpb24v
Y2FyZXQtYW5kLWZvY3VzLXJpbmcuaHRtbAotZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWJh
Y2tncm91bmQuaHRtbAorIyBUZXN0cyB1c2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5k
b3dJc0tleSBuZWVkIHRvIGJlIHVwZGF0ZWQgdG8gaGFuZGxlIGFzeW5jIGNhbGxiYWNrCisjIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTA+CiBmYXN0L2V2ZW50
cy9ibHVyLWZvY3VzLXdpbmRvdy1zaG91bGQtYmx1ci1mb2N1cy1lbGVtZW50Lmh0bWwKLWZhc3Qv
ZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1ci1vbmZvY3VzLmh0bWwKLWZhc3QvZmxleGJv
eC9ob3Jpem9udGFsLWJveC1mbG9hdC1jcmFzaC5odG1sCiBwbHVnaW5zL25ldHNjYXBlLXBsdWdp
bi1zZXR3aW5kb3ctc2l6ZS0yLmh0bWwKIAorIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91
dFRlc3RDb250cm9sbGVyLmFib3J0TW9kYWwKKyMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTU0OD4KK2Zhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1
ci1vbmZvY3VzLmh0bWwKKwogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEVkaXRpbmdCZWhhdmlvcgogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNjg5PgogZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlnYXR1cmUtMDAz
Lmh0bWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA4MDgwODEwOWJlY2NiZWM0Y2I2MzUyMjVjOWI2NTEwMDI4MjQ4ODI4Li5iNGJjZWI1Zjg2ZmY2
OTcwZjc1ZDc1NmRjNDkxMGRhZjNhZTYwMzM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMTAtMDYgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1
bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleSgpIGluIFdlYktpdFRlc3RSdW5uZXIu
CisgICAgICAgIFNpbmNlIHRoaXMgZG9lcyB3aW5kb3ctbGV2ZWwgc3R1ZmYsIGl0IG5vdyBoYXMg
dG8gYmUgYXN5bmNocm9ub3VzLCBzbyBhZGQKKyAgICAgICAgYSBjYWxsYmFjayB0byB0aGUgbGF5
b3V0VGVzdENvbnRyb2xsZXIgbWV0aG9kIHRoYXQgZnV0dXJlIHRlc3RzIGNhbiB1c2UuCisgICAg
ICAgIE9uZSBvciB0d28gdGVzdHMgYXJlIHN0aWxsIHNraXBwZWQgZm9yIFdLMiBiZWNhdXNlIHRo
ZXkgbmVlZCB0byB1c2UgdGhpcyBjYWxsYmFjaworICAgICAgICAoYnVnIDY5NTUwKS4KKyAgICAg
ICAgCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoc2V0V2luZG93SXNLZXlDYWxsYmFjayk6IENhbGwgdGhlIGNhbGxiYWNrIChpZiBw
cm92aWRlZCkgYWZ0ZXIgY2hhbmdpbmcKKyAgICAgICAgdGhlIHdpbmRvdyBrZXkgc3RhdHVzLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaWRsOiBBZGQgc2V0V2luZG93SXNLZXkoKS4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKTogSGFuZGxlIHRoZSAiU2V0
V2luZG93SXNLZXkiIG1lc3NhZ2UuCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpwb3N0
U2V0V2luZG93SXNLZXkpOiBQb3N0IHRoZSAiU2V0V2luZG93SXNLZXkiIG1lc3NhZ2UuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOiBVc2UgYW4gZW51bSBmb3IKKyAgICAgICAgY2FsbGJhY2sgSURzLCByYXRoZXIg
dGhhbiBtYWdpYyBudW1iZXJzLiBBZGQgb25lIGZvciBzZXRXaW5kb3dJc0tleS4KKyAgICAgICAg
KFdUUjo6Y2FjaGVMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZENocm9tZUlucHV0RmllbGQpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCk6CisgICAgICAg
IChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpmb2N1c1dlYlZpZXcpOgorICAgICAgICAoV1RS
OjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkpOgorICAgICAgICAoV1RSOjpM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbEFkZENocm9tZUlucHV0RmllbGRDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpjYWxsUmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZENhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxG
b2N1c1dlYlZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2V0V2luZG93SXNLZXlDYWxsYmFjayk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6IEFkZCBhbiBOU1dpbmRvdyBzdWJjbGFzcwor
ICAgICAgICBzbyB0aGF0IHdlIGNhbiBvdmVycmlkZSAtaXNLZXlXaW5kb3cuIFVzZSBhIGJvb2xl
YW4gbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIHRvIHRyYWNrIHdpbmRvdyBrZXkgc3RhdHVzLgor
ICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dJc0tleSk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpydW5Nb2RhbCk6IENoYW5nZSB0aGUgd2luZG93IGtleSBzdGF0dXMgd2hlbiBzaG93aW5nIGEg
bW9kYWwgYWxlcnQsIGFzIERSVCBkb2VzLgorICAgICAgICAoV1RSOjpjbG9zZU90aGVyUGFnZSk6
IFVzZSB0aGUgc2FtZSBjYXN0IGFzIG90aGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdUUjo6Zm9j
dXMpOiBJbXBsZW1lbnQgdG8gY2FsbCBzZXRXaW5kb3dJc0tleSh0cnVlKQorICAgICAgICAoV1RS
Ojp1bmZvY3VzKTogSW1wbGVtZW50IHRvIGNhbGwgc2V0V2luZG93SXNLZXkoZmFsc2UpCisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOiBBZGQgcGFnZSBjYWxs
YmFja3MgZm9yIGZvY3VzIGFuZCB1bmZvY3VzLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRDb21taXRM
b2FkRm9yRnJhbWUpOiBIb29rIHVwIGNhbGxiYWNrIHRvIGZvY3VzIHRoZSB3ZWIgdmlldywgYXMg
RFJUIGRvZXMuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAo
V1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
OiBIYW5kbGUgIlNldFdpbmRvd0lzS2V5IiBtZXNzYWdlLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3Jt
V2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KTogSW5pdGlhbGl6ZSBtX3dpbmRvd0lzS2V5IHRvIHRy
dWUuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1t
OgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGlzS2V5V2luZG93XSk6IE92ZXJy
aWRkZW4gdG8gdXNlIG1fd2luZG93SXNLZXkgZm9yIGtleSBzdGF0dXMuCisgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KTogTWFrZSBhIFdlYktpdFRlc3RSdW5u
ZXJXaW5kb3cuCisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmll
dyk6IENsZWFuIHVwIHRoZSBiYWNrIHBvaW50ZXIgb24gdGhlIE5TV2luZG93IHN1YmNsYXNzLCBp
biBjYXNlIGl0IG91dGxpdmVzIHVzLgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OmZv
Y3VzKTogU2V0IHRoZSB2aWV3IGFzIHRoZSBmaXJzdCByZXNwb25kZXIsIGFuZCB0aGUgd2luZG93
IGFzIHRoZSBrZXkgd2luZG93LCBhcyBEUlQgZG9lcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKTogZm9jdXMgdGhlIHdlYiB2aWV3LCBh
cyBEUlQgZG9lcy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmll
d1F0LmNwcDoKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcp
OiBJbml0aWFsaXplIG1fd2luZG93SXNLZXkgdG8gdHJ1ZS4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwOgorICAgICAgICAoV1RSOjptX3dpbmRv
d0lzS2V5KTogSW5pdGlhbGl6ZSBtX3dpbmRvd0lzS2V5IHRvIHRydWUuCisKIDIwMTEtMTAtMDUg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gV2Vi
S2l0VGVzdFJ1bm5lciwgdGV4dCBoYXMgZm9udCBzbW9vdGhpbmcgaW4gcGl4ZWwgc25hcHNob3Rz
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
MDM2MzkzNjk4M2Q5MTBhYWRjNjcwNGFjOTk4NTM0YTc1ODUxMTYxOC4uYzIyMzU3ZWVlNzdiOTc4
ZTQyMmNkMzM0YmRjN2VhNWRmZGQ4MTdkYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTY3OSw2ICsxNjc5LDEwIEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldFdpbmRvd0lzS2V5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0
aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2Jq
ZWN0KSk7CiAgICAgY29udHJvbGxlci0+c2V0V2luZG93SXNLZXkoSlNWYWx1ZVRvQm9vbGVhbihj
b250ZXh0LCBhcmd1bWVudHNbMF0pKTsKIAorICAgIC8vIFRoZSBzZWNvbmQgYXJndW1lbnQgaXMg
YSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBvbmNlIHRoZSB3aW5kb3cga2V5IHN0YXR1cyBoYXMg
Y2hhbmdlZC4KKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAyKQorICAgICAgICBKU09iamVjdENh
bGxBc0Z1bmN0aW9uKGNvbnRleHQsIEpTVmFsdWVUb09iamVjdChjb250ZXh0LCBhcmd1bWVudHNb
MV0sIDApLCB0aGlzT2JqZWN0LCAwLCAwLCAwKTsKKwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250
cm9sbGVyLmlkbAppbmRleCBkZWRjZmEwODE3YmMyMmRjZTBiNTczNmFiZmMwMDhhMDNlZjA4MjI0
Li5kMGZkZWNmODFhZGMwZjk1Nzg3OTAzNmU5MjJhMmZmNTJjM2Y3NDYzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbApAQCAtMTI3LDYgKzEyNyw3IEBAIG1v
ZHVsZSBXVFIgewogICAgICAgICB2b2lkIGFkZENocm9tZUlucHV0RmllbGQoaW4gb2JqZWN0IGNh
bGxiYWNrKTsKICAgICAgICAgdm9pZCByZW1vdmVDaHJvbWVJbnB1dEZpZWxkKGluIG9iamVjdCBj
YWxsYmFjayk7CiAgICAgICAgIHZvaWQgZm9jdXNXZWJWaWV3KGluIG9iamVjdCBjYWxsYmFjayk7
CisgICAgICAgIHZvaWQgc2V0V2luZG93SXNLZXkoaW4gYm9vbGVhbiBpc0tleSwgaW4gb2JqZWN0
IGNhbGxiYWNrKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDJjOWYwMDg0NmRk
NjNjOTRjYjhjMGE0NGRhZmY1NzlkOWM4MGE0MmEuLmRmODgwNTFjNmQyODI0YmYxNjhmZDA0YTIx
NTE4NTJjYTRkNmM4ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNzEsNiArMTcxLDExIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3NhZ2VO
YW1lLCBXS1R5cGVSZWYgbWVzc2FnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxTZXRXaW5kb3dJ
c0tleUNhbGxiYWNrIikpIHsKKyAgICAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+Y2FsbFNl
dFdpbmRvd0lzS2V5Q2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBlcnJvck1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFcnJvciIpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gZXJyb3JNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVW5rbm93biIpKTsKICAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBlcnJv
ck1lc3NhZ2VOYW1lLmdldCgpLCBlcnJvck1lc3NhZ2VCb2R5LmdldCgpKTsKQEAgLTI3Nyw0ICsy
ODIsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdEZvY3VzV2ViVmlldygpCiAgICAgV0tC
dW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2
b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFdpbmRvd0lzS2V5IikpOworICAgIFdLUmV0YWluUHRy
PFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKGlzS2V5
KSk7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgK
aW5kZXggZjE5MTI4OTZhYTZhYTg0N2M2OGRiMThlZDc4ZmVkMjY0MjYxMWQyYy4uOWY4ZjY2NjVk
NTg2ODBjNTRlNjVmODBiYjM4MjljOGRmYTBiYzViNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNzksNiAr
NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwogICAg
IHZvaWQgcG9zdFJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB2b2lkIHBvc3RGb2N1c1dl
YlZpZXcoKTsKKyAgICB2b2lkIHBvc3RTZXRXaW5kb3dJc0tleShib29sKTsKIAogcHJpdmF0ZToK
ICAgICBJbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAz
YmY1MjIzNTU1NjYyY2EzZDZjOTljZTU5YTMzZjc5OWU4MjJkZWUzLi5mNDQ5YmIwM2M4YWI2NWQz
MGJiZjg1YTk3ZTAzNjI4MDczODFjYzA4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApA
QCAtNTI1LDggKzUyNSwxOCBAQCBzdGF0aWMgQ2FsbGJhY2tNYXAmIGNhbGxiYWNrTWFwKCkKICAg
ICByZXR1cm4gbWFwOwogfQogCitlbnVtIHsKKyAgICBBZGRDaHJvbWVJbnB1dEZpZWxkQ2FsbGJh
Y2tJRCwKKyAgICBSZW1vdmVDaHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJRCwKKyAgICBGb2N1c1dl
YlZpZXdDYWxsYmFja0lELAorICAgIFNldFdpbmRvd0lzS2V5Q2FsbGJhY2tJRAorfTsKKwogc3Rh
dGljIHZvaWQgY2FjaGVMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogeworICAgIGlmICghY2FsbGJhY2spCisgICAgICAgIHJl
dHVybjsKKwogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0
TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQo
bWFpbkZyYW1lKTsKICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBjYWxsYmFjayk7CkBAIC01
NDYsMzUgKzU1Niw0NiBAQCBzdGF0aWMgdm9pZCBjYWxsTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxs
YmFjayh1bnNpZ25lZCBpbmRleCkKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkQ2hy
b21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewotICAgIGNhY2hlTGF5b3V0VGVz
dENvbnRyb2xsZXJDYWxsYmFjaygxLCBjYWxsYmFjayk7CisgICAgY2FjaGVMYXlvdXRUZXN0Q29u
dHJvbGxlckNhbGxiYWNrKEFkZENocm9tZUlucHV0RmllbGRDYWxsYmFja0lELCBjYWxsYmFjayk7
CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RBZGRDaHJvbWVJbnB1dEZpZWxkKCk7
CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUNocm9tZUlucHV0RmllbGQo
SlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKLSAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2Fs
bGJhY2soMiwgY2FsbGJhY2spOworICAgIGNhY2hlTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxsYmFj
ayhSZW1vdmVDaHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogICAgIEluamVj
dGVkQnVuZGxlOjpzaGFyZWQoKS5wb3N0UmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogfQogCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmb2N1c1dlYlZpZXcoSlNWYWx1ZVJlZiBjYWxsYmFj
aykKIHsKLSAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soMywgY2FsbGJhY2sp
OworICAgIGNhY2hlTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxsYmFjayhGb2N1c1dlYlZpZXdDYWxs
YmFja0lELCBjYWxsYmFjayk7CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RGb2N1
c1dlYlZpZXcoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNL
ZXkoYm9vbCBpc0tleSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBjYWNoZUxheW91dFRl
c3RDb250cm9sbGVyQ2FsbGJhY2soU2V0V2luZG93SXNLZXlDYWxsYmFja0lELCBjYWxsYmFjayk7
CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RTZXRXaW5kb3dJc0tleShpc0tleSk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxBZGRDaHJvbWVJbnB1dEZpZWxk
Q2FsbGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKDEpOwor
ICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKEFkZENocm9tZUlucHV0RmllbGRD
YWxsYmFja0lEKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFJlbW92ZUNo
cm9tZUlucHV0RmllbGRDYWxsYmFjaygpCiB7Ci0gICAgY2FsbExheW91dFRlc3RDb250cm9sbGVy
Q2FsbGJhY2soMik7CisgICAgY2FsbExheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soUmVtb3Zl
Q2hyb21lSW5wdXRGaWVsZENhbGxiYWNrSUQpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29u
dHJvbGxlckNhbGxiYWNrKDMpOworICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNr
KEZvY3VzV2ViVmlld0NhbGxiYWNrSUQpOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsU2V0V2luZG93SXNLZXlDYWxsYmFjaygpCit7CisgICAgY2FsbExheW91dFRlc3RDb250
cm9sbGVyQ2FsbGJhY2soU2V0V2luZG93SXNLZXlDYWxsYmFja0lEKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNzI3MzhhNGU1Yjc0NjI5Yjlk
Nzc0Zjg4ODc4ZDZjZWI2N2FlZjY1NS4uNjU4NjIxY2NkMzk4OWUyZjIxNmNlMjI2YTViNjA5Yzgw
ODhkNDBiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDkgKzE4MSwxMiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYpOwogICAgIHZv
aWQgcmVtb3ZlQ2hyb21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmKTsKICAgICB2b2lkIGZvY3VzV2Vi
VmlldyhKU1ZhbHVlUmVmKTsKKyAgICB2b2lkIHNldFdpbmRvd0lzS2V5KGJvb2wsIEpTVmFsdWVS
ZWYgY2FsbGJhY2spOworCiAgICAgdm9pZCBjYWxsQWRkQ2hyb21lSW5wdXRGaWVsZENhbGxiYWNr
KCk7CiAgICAgdm9pZCBjYWxsUmVtb3ZlQ2hyb21lSW5wdXRGaWVsZENhbGxiYWNrKCk7CiAgICAg
dm9pZCBjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2soKTsKKyAgICB2b2lkIGNhbGxTZXRXaW5kb3dJ
c0tleUNhbGxiYWNrKCk7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSB3YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lckludGVydmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmgKaW5kZXggODg4NjYwNTMzMjZlNjA3MDYyMjFlM2NhYWMyYzM0YTNlM2JlOWE5
Ni4uYTdjN2ZiMDQ5OTgzNDFiODMxY2EzODg3MGNiOWNjMWEzYzM1Y2E4ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC0zNCwxMyArMzQsMTMgQEAgdHlwZWRl
ZiBRU0dWaWV3KiBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBf
X0FQUExFX18KICNpZiBfX09CSkNfXwogQGNsYXNzIFdLVmlldzsKLUBjbGFzcyBOU1dpbmRvdzsK
K0BjbGFzcyBXZWJLaXRUZXN0UnVubmVyV2luZG93OwogI2Vsc2UKIGNsYXNzIFdLVmlldzsKLWNs
YXNzIE5TV2luZG93OworY2xhc3MgV2ViS2l0VGVzdFJ1bm5lcldpbmRvdzsKICNlbmRpZgogdHlw
ZWRlZiBXS1ZpZXcqIFBsYXRmb3JtV0tWaWV3OwotdHlwZWRlZiBOU1dpbmRvdyogUGxhdGZvcm1X
aW5kb3c7Cit0eXBlZGVmIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cqIFBsYXRmb3JtV2luZG93Owog
I2VsaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiB0eXBlZGVmIFdLVmlld1Jl
ZiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVdpbmRvdzsKQEAgLTc0LDEw
ICs3NCwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAg
dm9pZCByZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAgdm9pZCBtYWtlV2ViVmlld0ZpcnN0
UmVzcG9uZGVyKCk7CisgICAgdm9pZCBzZXRXaW5kb3dJc0tleShib29sIGlzS2V5KSB7IG1fd2lu
ZG93SXNLZXkgPSBpc0tleTsgfQorICAgIGJvb2wgd2luZG93SXNLZXkoKSBjb25zdCB7IHJldHVy
biBtX3dpbmRvd0lzS2V5OyB9CiAKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1XS1ZpZXcgbV92aWV3
OwogICAgIFBsYXRmb3JtV2luZG93IG1fd2luZG93OworICAgIGJvb2wgbV93aW5kb3dJc0tleTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCA2NWY3ODMyOGViYWNhM2U0ODFhYjQzNWEyZGQ1MjBiOTY1YjFkYjFl
Li4xZTZkODY3OGU1MjhjNDdhMWNhNWRiMWNlZTdmMmZiODEwNTU1MTZhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTI4LDE2ICsxMjgsMzEgQEAgc3Rh
dGljIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmLCBXS1NlY3VyaXQKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoV0tQ
YWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgcnVuTW9kYWwoc3Rh
dGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
KTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZp
ZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgdmlldy0+c2V0V2luZG93
SXNLZXkoZmFsc2UpOworICAgIHJ1bk1vZGFsKHZpZXcpOworICAgIHZpZXctPnNldFdpbmRvd0lz
S2V5KHRydWUpOwogfQogCiBzdGF0aWMgdm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBXS1BhZ2VDbG9zZShwYWdlKTsKLSAg
ICBjb25zdCBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBQbGF0Zm9y
bVdlYlZpZXcqPihjbGllbnRJbmZvKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7
CiAgICAgZGVsZXRlIHZpZXc7CiB9CiAKK3N0YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9
IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKTsKKyAgICB2aWV3LT5zZXRXaW5kb3dJc0tleSh0cnVlKTsKK30KKworc3RhdGljIHZvaWQg
dW5mb2N1cyhXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgdmlldy0+c2V0V2luZG93SXNLZXkoZmFs
c2UpOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1Bh
Z2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0RpY3Rpb25hcnlSZWYsIFdLRXZlbnRN
b2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCopCiB7CiAgICAgUGxhdGZv
cm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhXS1BhZ2VHZXRDb250ZXh0KG9s
ZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSkpOwpAQCAtMTUyLDggKzE2Nyw4IEBA
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQ
YWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAg
IGNsb3NlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyB0YWtlRm9jdXMKLSAgICAgICAgMCwgLy8g
Zm9jdXMKLSAgICAgICAgMCwgLy8gdW5mb2N1cworICAgICAgICBmb2N1cywKKyAgICAgICAgdW5m
b2N1cywKICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0ICAgICAgICAKICAgICAgICAg
MCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdFBy
b21wdApAQCAtMzUwLDcgKzM2NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUo
aW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgMCwgLy8gZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZQogICAgICAgICAwLCAvLyBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUKLSAgICAgICAgMCwgLy8gZGlkQ29tbWl0TG9hZEZv
ckZyYW1lCisgICAgICAgIGRpZENvbW1pdExvYWRGb3JGcmFtZSwKICAgICAgICAgMCwgLy8gZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1l
LAogICAgICAgICAwLCAvLyBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lCkBAIC02MDgsNiAr
NjIzLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdENvbnRyb2xsZXI6OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAKIC8vIFdLUGFnZUxvYWRlckNsaWVu
dAogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHBhZ2UsIGZyYW1lKTsKK30KKwog
dm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
CiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRpZEZpbmlzaExvYWRGb3JGcmFtZShwYWdlLCBmcmFtZSk7CkBAIC02MTgsNiAr
NjM4LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYg
cGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJv
bGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+cHJvY2Vzc0RpZENyYXNoKCk7
CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSkKK3sKKyAgICBwbGF0Zm9ybURpZENvbW1pdExvYWRG
b3JGcmFtZShwYWdlLCBmcmFtZSk7Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZEZpbmlz
aExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSkKIHsKICAgICBp
ZiAobV9zdGF0ZSAhPSBSZXNldHRpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKaW5kZXggNmFiODk4MTQzNjA0M2NiY2VmYzRiNDQ3ODlkODE2ZmQ5NjM2ZmU4Zi4uZDBk
MjE1MTRlY2E5NDVlMDY3MmI0YjM0ODA2ZGRhMzEzYWVjNGI5MiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNzEsNiArNzEsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250
ZXh0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1l
b3V0KTsKKyAgICB2b2lkIHBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwg
V0tGcmFtZVJlZik7CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQYXRoKCk7CiAg
ICAgdm9pZCBpbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpOwogCkBAIC04Myw4ICs4NCwx
MSBAQCBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwg
V0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKIAogICAgIC8vIFdLUGFnZUxvYWRlckNsaWVudAotICAg
IHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7Ci0gICAgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZik7CisKKyAgICBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNl
ckRhdGEsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYpOwogCiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdL
UGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jh
c2goKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMDE4
OWEyNTVmZTZhMDQwZjg1MDMxMTcwMjcwOTk3YzUxYWE0YzhmYy4uNGNiYWY4NDcwYzE0OWQ4MjE1
YmExOTNiZWNlMTYxM2U5MDU2NTJiZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTI3MCw2ICsyNzAsMTUgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0V2luZG93SXNLZXkiKSkgeworICAgICAgICBBU1NFUlQo
V0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKKyAgICAg
ICAgV0tCb29sZWFuUmVmIGlzS2V5VmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1l
c3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3
KCktPnNldFdpbmRvd0lzS2V5KFdLQm9vbGVhbkdldFZhbHVlKGlzS2V5VmFsdWUpKTsKKyAgICAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2FsbFNldFdpbmRvd0lzS2V5Q2FsbGJhY2siKSk7Cisg
ICAgICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkuY29udGV4dCgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgMCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKaW5kZXggMzcz
NWRjNWU2YzJlNThiOWI5ODFkNDQzYWM1NTY3NzhkZjA0NzYwNi4uMTY0NmI0NWFiOTY1OTZiZWYy
OGY1YTBlNDI4ZjRhZjgxZGI2MDlkMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBX
VFIgewogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkKICAgICA6IG1fdmlldyhXS1ZpZXdDcmVhdGUo
Y29udGV4dCwgcGFnZUdyb3VwKSkKICAgICAsIG1fd2luZG93KGd0a193aW5kb3dfbmV3KEdUS19X
SU5ET1dfUE9QVVApKQorICAgICwgbV93aW5kb3dJc0tleSh0cnVlKQogewogICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIobV93aW5kb3cpLCBHVEtfV0lER0VUKG1fdmlldykpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0K
aW5kZXggNDY5MzgzZDFhMDgzOGU5M2E1MDg5NzRmYTBlOGNjYzU1MDhiNzNmOS4uMGQyZDM4NGEz
YTYwNWIxOTNhYWE5ZWMwNTAwNDk2NTY2ZGQzOGYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMjUsMTUgKzI1LDMyIEBACiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKIAorQGludGVyZmFjZSBXZWJLaXRUZXN0UnVu
bmVyV2luZG93IDogTlNXaW5kb3cgeworICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBfcGxhdGZv
cm1XZWJWaWV3OworfQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9y
bVdlYlZpZXcqIHBsYXRmb3JtV2ViVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJXaW5kb3cKK0BzeW50aGVzaXplIHBsYXRmb3JtV2ViVmlldyA9IF9wbGF0Zm9y
bVdlYlZpZXc7CisKKy0gKEJPT0wpaXNLZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gX3BsYXRmb3Jt
V2ViVmlldyA/IF9wbGF0Zm9ybVdlYlZpZXctPndpbmRvd0lzS2V5KCkgOiBZRVM7Cit9CitAZW5k
CisKIG5hbWVzcGFjZSBXVFIgewogCiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQorICAg
IDogbV93aW5kb3dJc0tleSh0cnVlKQogewogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCk7CiAgICAgbV92aWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZl07
CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0UmVjdChyZWN0LCAtMTAwMDAsIFso
TlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVjdEF0SW5kZXg6MF0gZnJhbWVdLnNp
emUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKLSAgICBtX3dpbmRvdyA9IFtb
TlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6d2luZG93UmVjdCBzdHlsZU1hc2s6
TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVm
ZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10g
aW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5k
b3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOworICAgIG1f
d2luZG93LnBsYXRmb3JtV2ViVmlldyA9IHRoaXM7CiAgICAgW21fd2luZG93IHNldENvbG9yU3Bh
Y2U6W05TQ29sb3JTcGFjZSBnZW5lcmljUkdCQ29sb3JTcGFjZV1dOwogICAgIFtbbV93aW5kb3cg
Y29udGVudFZpZXddIGFkZFN1YnZpZXc6bV92aWV3XTsKICAgICBbbV93aW5kb3cgb3JkZXJCYWNr
Om5pbF07CkBAIC00OCw2ICs2NSw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1
bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0
Zm9ybVdlYlZpZXcoKQogeworICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmlldyA9IDA7CiAgICAg
W21fd2luZG93IGNsb3NlXTsKICAgICBbbV93aW5kb3cgcmVsZWFzZV07CiAgICAgW21fdmlldyBy
ZWxlYXNlXTsKQEAgLTYwLDcgKzc4LDggQEAgV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFn
ZSgpCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7Ci0gICAgLy8gSW1wbGVtZW50
LgorICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKKyAgICBzZXRXaW5k
b3dJc0tleSh0cnVlKTsKIH0KIAogV0tSZWN0IFBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUo
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpp
bmRleCBjODg0YzhmYjExYzgyMjhlMWFjY2Q3MWNmODg5YzFiZTc3ZDI5Y2JkLi41OWI5MTMzNmVm
YzU4ZWVlMmExYTk1OWU2MzZiNzFiMzg5YzJiMWYxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNjQsNiArNjQsMTEgQEAgdm9pZCBU
ZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCiB7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQoreworICAgIG1haW5XZWJWaWV3KCktPmZvY3VzKCk7Cit9
CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykK
IHsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW3ZpZXctPnBsYXRmb3JtVmlldygpIHdpbmRvd107
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCmlu
ZGV4IDdhZjE1NTMyMWFlZDUwY2I5ZTViYjBkNTMyNWY4ZjlmMWRlYmI0YzEuLjU0MzZiMzZkYTQw
ZWEyOTg3NjY0MjJlMWY3Yjg0ODljMzk1ODVkNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBAIC02OSw2ICs2OSw3IEBAIHByaXZhdGU6
CiBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogICAgIDogbV92aWV3KG5ldyBRRGVza3Rv
cFdlYlZpZXcoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKICAgICAsIG1fd2luZG93KG5ldyBX
cmFwcGVyV2luZG93KG1fdmlldykpCisgICAgLCBtX3dpbmRvd0lzS2V5KHRydWUpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dp
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3Bw
CmluZGV4IDM0MjA1YTBmZTYwOTBhYzVkNzZmZDkzYzZjMTJmZWQzODRiMWY0ZDMuLjZiNjQwOGRi
NWRlYjQwZjcyY2ViZTY5M2RlNjJmNzYzNjJiNmIxMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcApAQCAtNDksNiArNDksNyBAQCBz
dGF0aWMgdm9pZCByZWdpc3RlcldpbmRvd0NsYXNzKCkKIH0KIAogUGxhdGZvcm1XZWJWaWV3OjpQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZikKKyAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKIHsKICAgICByZWdpc3Rlcldp
bmRvd0NsYXNzKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110395</attachid>
            <date>2011-10-10 13:43:45 -0700</date>
            <delta_ts>2011-10-10 13:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42688-20111010134344.patch</filename>
            <type>text/plain</type>
            <size>22438</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcwNzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzA1YzM0NzlkMDU1OGE1N2IzOTBm
NWVkNGZmNmUyMzhmOGY2ZTIwLi5kM2FkNDhlOWQ0NDkwOWVjYjA2ZjlhYjZmNjgyZTIzMjc3NWQ1
ZjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTAgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRXaW5kb3dJc0tleQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgdGhlIFNraXBwZWQgbGlzdCBmb3IgV2Vi
S2l0MiwgdW5za2lwcGluZyBzb21lIHRlc3RzLCBidXQKKyAgICAgICAga2VlcGluZyBvdGhlcnMg
c2tpcHBlZCBmb3IgbmV3IHJlYXNvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBl
ZDoKKwogMjAxMS0xMC0xMCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFN0eWxlIGZvciB1cGRhdGVkIGR1ZSB0byBpbmFiaWxpdHkgdG8gbG9jYXRlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4IGQwYzZjOWY4ZDUzYTc2OWE4ODc2ZWI2NTJkZjZm
ODRhNGM2YWVhZDcuLjRiYjE3NWZlYjVjOTg4Yzg2Yzc4ZjE1NTQwMzQ2ODQxN2E2OTg2NWYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBAIC02NDIsNyArNjQyLDkgQEAgZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvbmVzdGVkLWV4ZWN1dGlvbi5odG1sCiAKICMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVy
CiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2ODU+CitlZGl0
aW5nL3NlbGVjdGlvbi9jYXJldC1hbmQtZm9jdXMtcmluZy5odG1sCiBlZGl0aW5nL3NlbGVjdGlv
bi9kZXNpZ25tb2RlLW5vLWNhcmV0Lmh0bWwKK2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1i
YWNrZ3JvdW5kLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb25Gb2N1cy5odG1sCiBwbGF0
Zm9ybS9tYWMvc2Nyb2xsYmFycy9rZXktd2luZG93LW5vdC1maXJzdC1yZXNwb25kZXIuaHRtbAog
CkBAIC02NTQsMTUgKzY1Niw5IEBAIGZhc3QvZW5jb2RpbmcvaWRuLXNlY3VyaXR5Lmh0bWwKICMg
PGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjY4Nz4KIGZhc3QvZXZl
bnRzL2tleXByZXNzLWluc2VydC10YWIuaHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0V2luZG93SXNLZXkKLSMgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjY4OD4KLWVkaXRpbmcvc2VsZWN0aW9uLzQ5NzUxMjAu
aHRtbAotZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtYW5kLWZvY3VzLXJpbmcuaHRtbAotZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWJhY2tncm91bmQuaHRtbAotZmFzdC9ldmVudHMvYmx1ci1m
b2N1cy13aW5kb3ctc2hvdWxkLWJsdXItZm9jdXMtZWxlbWVudC5odG1sCisjIFdlYktpdFRlc3RS
dW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWJvcnRNb2RhbAorIyA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQ4PgogZmFzdC9ldmVudHMvc2hvdy1t
b2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMuaHRtbAotZmFzdC9mbGV4Ym94L2hvcml6b250YWwt
Ym94LWZsb2F0LWNyYXNoLmh0bWwKLXBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXNldHdpbmRvdy1z
aXplLTIuaHRtbAogCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0RWRpdGluZ0JlaGF2aW9yCiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDI2ODk+CkBAIC02NzIsNiArNjY4LDcgQEAgZWRpdGluZy9kZWxldGluZy93aGl0
ZXNwYWNlLXByZS0xLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL2FmdGVyLWxpbmUtYnJlYWsuaHRt
bAogZWRpdGluZy9zZWxlY3Rpb24vcnRsLW1vdmUtc2VsZWN0aW9uLXJpZ2h0LWxlZnQuaHRtbAog
ZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2Ni0xLmh0bWwKK2VkaXRpbmcvc2VsZWN0aW9uL2NvbGxh
cHNlLXNlbGVjdGlvbi1pbi1iaWRpLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVu
dS10ZXh0LXNlbGVjdGlvbi5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi9kaXJlY3Rpb25hbGl0eS1h
ZnRlci11bmRvLXJlcGxhY2UuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vcHJvZ3JhbW1hdGljLXNl
bGVjdGlvbi1vbi1tYWMtaXMtZGlyZWN0aW9ubGVzcy5odG1sCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWZmNjE3NTljYzA4NWEwMjgwMDY4YjNj
M2NkMjMxMTNmYmY0ZTNlYy4uODRhMmU0MmM1NDZiOTFmZWYyNjExNDcyYjEwMjNmMjVmMTg0ZDU2
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDYwIEBACisyMDExLTEwLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0V2luZG93SXNLZXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IGxheW91dFRlc3RDb250cm9sbGVyLnNldFdpbmRvd0lzS2V5
KCkgaW4gV2ViS2l0VGVzdFJ1bm5lci4KKyAgICAgICAgVGhpcyBzZXRzIGEgZmxhZyB0aGF0IHRo
ZSBwbGF0Zm9ybSBsYXllciB1c2VzIHRvIGluZGljYXRlIHRoYXQKKyAgICAgICAgdGhlIHdpbmRv
dyBpcyB0aGUga2V5IHdpbmRvdywgd2hpY2ggZml4ZXMgZm9jdXMgcmluZyBkcmF3aW5nCisgICAg
ICAgIGluIHBpeGVsIHJlc3VsdHMuCisgICAgICAgIAorICAgICAgICBBbHNvIGZvY3VzIHRoZSB3
ZWIgdmlldyB3aGVuIHdlIGdldCBhICdkaWRDb21taXRMb2FkJyBmb3IgdGhlIG1haW4KKyAgICAg
ICAgZnJhbWUsIGFzIER1bXBSZW5kZXJUcmVlIGRvZXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBvc3RTZXRXaW5kb3dJc0tleSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpjYWNoZUxheW91dFRlc3RDb250cm9sbGVy
Q2FsbGJhY2spOiBSZXBsYWNlIHNvbWUgbWFnaWMgbnVtYmVycyB3aXRoIGFuIGVudW0uCisgICAg
ICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjphZGRDaHJvbWVJbnB1dEZpZWxkKToKKyAg
ICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZUNocm9tZUlucHV0RmllbGQp
OgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9jdXNXZWJWaWV3KToKKyAg
ICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdpbmRvd0lzS2V5KToKKyAgICAg
ICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxBZGRDaHJvbWVJbnB1dEZpZWxkQ2Fs
bGJhY2spOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFJlbW92ZUNo
cm9tZUlucHV0RmllbGRDYWxsYmFjayk6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9s
bGVyOjpjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2spOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOiBBZGQgYW4gTlNXaW5kb3cgc3ViY2xhc3MK
KyAgICAgICAgc28gdGhhdCB3ZSBjYW4gb3ZlcnJpZGUgLWlzS2V5V2luZG93LiBVc2UgYSBib29s
ZWFuIG1lbWJlciB2YXJpYWJsZQorICAgICAgICB0byB0cmFjayB3aW5kb3cga2V5IHN0YXR1cy4K
KyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAg
IChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93SXNLZXkpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cnVuTW9kYWwpOiBDaGFuZ2UgdGhlIHdpbmRvdyBrZXkgc3RhdHVzIHdoZW4gc2hvd2luZyBh
IG1vZGFsIGFsZXJ0LCBhcyBEUlQgZG9lcy4KKyAgICAgICAgKFdUUjo6Y2xvc2VPdGhlclBhZ2Up
OiBVc2UgdGhlIHNhbWUgY2FzdCBhcyBvdGhlciBmdW5jdGlvbnMuCisgICAgICAgIChXVFI6OmZv
Y3VzKTogSW1wbGVtZW50IHRvIGNhbGwgc2V0V2luZG93SXNLZXkodHJ1ZSkKKyAgICAgICAgKFdU
Ujo6dW5mb2N1cyk6IEltcGxlbWVudCB0byBjYWxsIHNldFdpbmRvd0lzS2V5KGZhbHNlKQorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogQWRkIHBhZ2UgY2Fs
bGJhY2tzIGZvciBmb2N1cyBhbmQgdW5mb2N1cy4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0
TG9hZEZvckZyYW1lKTogSG9vayB1cCBjYWxsYmFjayB0byBmb2N1cyB0aGUgd2ViIHZpZXcsIGFz
IERSVCBkb2VzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2Vi
Vmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW06CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgaXNLZXlXaW5kb3ddKToKKyAg
ICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOiBNYWtlIGEgV2Vi
S2l0VGVzdFJ1bm5lcldpbmRvdy4KKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxh
dGZvcm1XZWJWaWV3KTogQ2xlYW4gdXAgdGhlIGJhY2sgcG9pbnRlciBvbiB0aGUgTlNXaW5kb3cg
c3ViY2xhc3MsIGluIGNhc2UgaXQgb3V0bGl2ZXMgdXMuCisgICAgICAgIChXVFI6OlBsYXRmb3Jt
V2ViVmlldzo6Zm9jdXMpOiBTZXQgdGhlIHZpZXcgYXMgdGhlIGZpcnN0IHJlc3BvbmRlciwgYW5k
IHRoZSB3aW5kb3cgYXMgdGhlIGtleSB3aW5kb3csIGFzIERSVCBkb2VzLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwOgorICAgICAgICAoV1RSOjpQ
bGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1X
ZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgorCiAyMDExLTEwLTEwICBSYXBoYWVsIEt1Ym8gZGEg
Q29zdGEgIDxrdWJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIGNoZWNrLXdlYmtpdC1zdHls
ZTogQWRkIHJlYWRhYmlsaXR5IGV4Y2VwdGlvbiBmb3IgRXdrXyogZGF0YSB0eXBlcy4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKaW5kZXggZGVkY2ZhMDgxN2Jj
MjJkY2UwYjU3MzZhYmZjMDA4YTAzZWYwODIyNC4uZjAxMWE3MzE4MGQ5NGYwZGVhNDkzYmJhYzRl
N2U4ODk1MjlhNzRlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGwKQEAgLTEyNyw2ICsxMjcsNyBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCBhZGRD
aHJvbWVJbnB1dEZpZWxkKGluIG9iamVjdCBjYWxsYmFjayk7CiAgICAgICAgIHZvaWQgcmVtb3Zl
Q2hyb21lSW5wdXRGaWVsZChpbiBvYmplY3QgY2FsbGJhY2spOwogICAgICAgICB2b2lkIGZvY3Vz
V2ViVmlldyhpbiBvYmplY3QgY2FsbGJhY2spOworICAgICAgICB2b2lkIHNldFdpbmRvd0lzS2V5
KGluIGJvb2xlYW4gaXNLZXkpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMmM5
ZjAwODQ2ZGQ2M2M5NGNiOGMwYTQ0ZGFmZjU3OWQ5YzgwYTQyYS4uNDhlNDkzMzJiZTE1YzM5ZDE4
MmY4ZmRlY2ExMDZlNWU2M2M4MzkwMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTI3Nyw0ICsyNzcs
MTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdEZvY3VzV2ViVmlldygpCiAgICAgV0tCdW5k
bGVQb3N0TWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2b2lk
IEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIlNldFdpbmRvd0lzS2V5IikpOworICAgIFdLUmV0YWluUHRyPFdL
Qm9vbGVhblJlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKGlzS2V5KSk7
CisgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFt
ZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAppbmRleCBmMTkxMjg5NmFhNmFhODQ3YzY4ZGIxOGVkNzhmZWQyNjQyNjExZDJj
Li45ZjhmNjY2NWQ1ODY4MGM1NGU2NWY4MGJiMzgyOWM4ZGZhMGJjNWI0IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
CkBAIC03OSw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3RBZGRDaHJvbWVJbnB1dEZp
ZWxkKCk7CiAgICAgdm9pZCBwb3N0UmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogICAgIHZvaWQg
cG9zdEZvY3VzV2ViVmlldygpOworICAgIHZvaWQgcG9zdFNldFdpbmRvd0lzS2V5KGJvb2wpOwog
CiBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDNiZjUyMjM1NTU2NjJjYTNkNmM5OWNlNTlhMzNmNzk5ZTgyMmRlZTMuLmM1ZTQ4
NDA4YjliYzA4NmVhNGEwYTUyOWY5OTU5MGZmN2NmY2I3NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCkBAIC01MjUsOCArNTI1LDE3IEBAIHN0YXRpYyBDYWxsYmFja01hcCYgY2FsbGJh
Y2tNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKK2VudW0geworICAgIEFkZENocm9tZUlucHV0
RmllbGRDYWxsYmFja0lELAorICAgIFJlbW92ZUNocm9tZUlucHV0RmllbGRDYWxsYmFja0lELAor
ICAgIEZvY3VzV2ViVmlld0NhbGxiYWNrSUQKK307CisKIHN0YXRpYyB2b2lkIGNhY2hlTGF5b3V0
VGVzdENvbnRyb2xsZXJDYWxsYmFjayh1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZVJlZiBjYWxsYmFj
aykKIHsKKyAgICBpZiAoIWNhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKICAgICBXS0J1bmRs
ZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0
ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CiAgICAgSlNW
YWx1ZVByb3RlY3QoY29udGV4dCwgY2FsbGJhY2spOwpAQCAtNTQ2LDM1ICs1NTUsNDAgQEAgc3Rh
dGljIHZvaWQgY2FsbExheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2sodW5zaWduZWQgaW5kZXgp
CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZENocm9tZUlucHV0RmllbGQoSlNWYWx1
ZVJlZiBjYWxsYmFjaykKIHsKLSAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2so
MSwgY2FsbGJhY2spOworICAgIGNhY2hlTGF5b3V0VGVzdENvbnRyb2xsZXJDYWxsYmFjayhBZGRD
aHJvbWVJbnB1dEZpZWxkQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogICAgIEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5wb3N0QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwogfQogCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpyZW1vdmVDaHJvbWVJbnB1dEZpZWxkKEpTVmFsdWVSZWYgY2FsbGJhY2sp
CiB7Ci0gICAgY2FjaGVMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKDIsIGNhbGxiYWNrKTsK
KyAgICBjYWNoZUxheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soUmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZENhbGxiYWNrSUQsIGNhbGxiYWNrKTsKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cG9zdFJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Zm9jdXNXZWJWaWV3KEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7Ci0gICAgY2FjaGVMYXlv
dXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKDMsIGNhbGxiYWNrKTsKKyAgICBjYWNoZUxheW91dFRl
c3RDb250cm9sbGVyQ2FsbGJhY2soRm9jdXNXZWJWaWV3Q2FsbGJhY2tJRCwgY2FsbGJhY2spOwog
ICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wb3N0Rm9jdXNXZWJWaWV3KCk7CiB9CiAKK3Zv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgaXNLZXkpCit7Cisg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBvc3RTZXRXaW5kb3dJc0tleShpc0tleSk7Cit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxBZGRDaHJvbWVJbnB1dEZpZWxkQ2Fs
bGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKDEpOworICAg
IGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKEFkZENocm9tZUlucHV0RmllbGRDYWxs
YmFja0lEKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2FsbFJlbW92ZUNocm9t
ZUlucHV0RmllbGRDYWxsYmFjaygpCiB7Ci0gICAgY2FsbExheW91dFRlc3RDb250cm9sbGVyQ2Fs
bGJhY2soMik7CisgICAgY2FsbExheW91dFRlc3RDb250cm9sbGVyQ2FsbGJhY2soUmVtb3ZlQ2hy
b21lSW5wdXRGaWVsZENhbGxiYWNrSUQpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpjYWxsRm9jdXNXZWJWaWV3Q2FsbGJhY2soKQogewotICAgIGNhbGxMYXlvdXRUZXN0Q29udHJv
bGxlckNhbGxiYWNrKDMpOworICAgIGNhbGxMYXlvdXRUZXN0Q29udHJvbGxlckNhbGxiYWNrKEZv
Y3VzV2ViVmlld0NhbGxiYWNrSUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAppbmRleCA3MjczOGE0ZTViNzQ2MjliOWQ3NzRmODg4NzhkNmNlYjY3YWVm
NjU1Li5lNjBkMTczNjA2YjJiOGFlYTE3OThhM2MyMDM5MzFkNWM3ZGQyZjk4IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0xODEsNiArMTgxLDggQEAgcHVibGljOgogICAgIHZvaWQgYWRk
Q2hyb21lSW5wdXRGaWVsZChKU1ZhbHVlUmVmKTsKICAgICB2b2lkIHJlbW92ZUNocm9tZUlucHV0
RmllbGQoSlNWYWx1ZVJlZik7CiAgICAgdm9pZCBmb2N1c1dlYlZpZXcoSlNWYWx1ZVJlZik7Cisg
ICAgdm9pZCBzZXRXaW5kb3dJc0tleShib29sKTsKKwogICAgIHZvaWQgY2FsbEFkZENocm9tZUlu
cHV0RmllbGRDYWxsYmFjaygpOwogICAgIHZvaWQgY2FsbFJlbW92ZUNocm9tZUlucHV0RmllbGRD
YWxsYmFjaygpOwogICAgIHZvaWQgY2FsbEZvY3VzV2ViVmlld0NhbGxiYWNrKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA4ODg2NjA1MzMyNmU2MDcwNjIy
MWUzY2FhYzJjMzRhM2UzYmU5YTk2Li5hN2M3ZmIwNDk5ODM0MWI4MzFjYTM4ODcwY2I5Y2MxYTNj
MzVjYThlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTM0
LDEzICszNCwxMyBAQCB0eXBlZGVmIFFTR1ZpZXcqIFBsYXRmb3JtV2luZG93OwogI2VsaWYgZGVm
aW5lZChfX0FQUExFX18pICYmIF9fQVBQTEVfXwogI2lmIF9fT0JKQ19fCiBAY2xhc3MgV0tWaWV3
OwotQGNsYXNzIE5TV2luZG93OworQGNsYXNzIFdlYktpdFRlc3RSdW5uZXJXaW5kb3c7CiAjZWxz
ZQogY2xhc3MgV0tWaWV3OwotY2xhc3MgTlNXaW5kb3c7CitjbGFzcyBXZWJLaXRUZXN0UnVubmVy
V2luZG93OwogI2VuZGlmCiB0eXBlZGVmIFdLVmlldyogUGxhdGZvcm1XS1ZpZXc7Ci10eXBlZGVm
IE5TV2luZG93KiBQbGF0Zm9ybVdpbmRvdzsKK3R5cGVkZWYgV2ViS2l0VGVzdFJ1bm5lcldpbmRv
dyogUGxhdGZvcm1XaW5kb3c7CiAjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4z
MikKIHR5cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBIV05EIFBsYXRm
b3JtV2luZG93OwpAQCAtNzQsMTAgKzc0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZENocm9t
ZUlucHV0RmllbGQoKTsKICAgICB2b2lkIHJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB2
b2lkIG1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKTsKKyAgICB2b2lkIHNldFdpbmRvd0lzS2V5
KGJvb2wgaXNLZXkpIHsgbV93aW5kb3dJc0tleSA9IGlzS2V5OyB9CisgICAgYm9vbCB3aW5kb3dJ
c0tleSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93SXNLZXk7IH0KIAogcHJpdmF0ZToKICAgICBQ
bGF0Zm9ybVdLVmlldyBtX3ZpZXc7CiAgICAgUGxhdGZvcm1XaW5kb3cgbV93aW5kb3c7CisgICAg
Ym9vbCBtX3dpbmRvd0lzS2V5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDY1Zjc4MzI4ZWJhY2EzZTQ4MWFi
NDM1YTJkZDUyMGI5NjViMWRiMWUuLjI5YWRiZGRkNGI1Zjg3MTE0YmE1ODYwYWI5YThjODE0NTIw
MTliNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0x
MjgsMTYgKzEyOCwzMSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLU2VjdXJpdAogCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
IHsKLSAgICBydW5Nb2RhbChzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0
PHZvaWQqPihjbGllbnRJbmZvKSkpOworICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRp
Y19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
KyAgICB2aWV3LT5zZXRXaW5kb3dJc0tleShmYWxzZSk7CisgICAgcnVuTW9kYWwodmlldyk7Cisg
ICAgdmlldy0+c2V0V2luZG93SXNLZXkodHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsb3NlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdL
UGFnZUNsb3NlKHBhZ2UpOwotICAgIGNvbnN0IFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRp
Y19jYXN0PGNvbnN0IFBsYXRmb3JtV2ViVmlldyo+KGNsaWVudEluZm8pOworICAgIFBsYXRmb3Jt
V2ViVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKTsKICAgICBkZWxldGUgdmlldzsKIH0KIAorc3RhdGljIHZvaWQg
Zm9jdXMoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgUGxh
dGZvcm1XZWJWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3Rf
Y2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAgIHZpZXctPnNldFdpbmRvd0lzS2V5KHRydWUp
OworfQorCitzdGF0aWMgdm9pZCB1bmZvY3VzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBs
YXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICB2aWV3
LT5zZXRXaW5kb3dJc0tleShmYWxzZSk7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRGlj
dGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2
b2lkKikKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZvcm1XZWJWaWV3
KFdLUGFnZUdldENvbnRleHQob2xkUGFnZSksIFdLUGFnZUdldFBhZ2VHcm91cChvbGRQYWdlKSk7
CkBAIC0xNTIsOCArMTY3LDggQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhl
clBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwg
Ly8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCiAgICAgICAgIDAsIC8vIHRha2VG
b2N1cwotICAgICAgICAwLCAvLyBmb2N1cwotICAgICAgICAwLCAvLyB1bmZvY3VzCisgICAgICAg
IGZvY3VzLAorICAgICAgICB1bmZvY3VzLAogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0QWxl
cnQgICAgICAgIAogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAw
LCAvLyBydW5KYXZhU2NyaXB0UHJvbXB0CkBAIC0zNTAsNyArMzY1LDcgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICAg
ICAwLCAvLyBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiAgICAgICAgIDAsIC8vIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCiAgICAgICAg
IDAsIC8vIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZQotICAgICAgICAw
LCAvLyBkaWRDb21taXRMb2FkRm9yRnJhbWUKKyAgICAgICAgZGlkQ29tbWl0TG9hZEZvckZyYW1l
LAogICAgICAgICAwLCAvLyBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogICAgICAgICBk
aWRGaW5pc2hMb2FkRm9yRnJhbWUsCiAgICAgICAgIDAsIC8vIGRpZEZhaWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUKQEAgLTYwOCw2ICs2MjMsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0
Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKIAog
Ly8gV0tQYWdlTG9hZGVyQ2xpZW50CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZENvbW1pdExv
YWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRDb21taXRMb2FkRm9yRnJhbWUo
cGFnZSwgZnJhbWUpOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkRmluaXNoTG9hZEZvckZyYW1lKHBhZ2Us
IGZyYW1lKTsKQEAgLTYxOCw2ICs2MzgsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cHJvY2Vz
c0RpZENyYXNoKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHN0
YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
LT5wcm9jZXNzRGlkQ3Jhc2goKTsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQoreworICAgIGlm
ICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbWFp
bldlYlZpZXcoKS0+Zm9jdXMoKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkRmluaXNo
TG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lKQogewogICAgIGlm
IChtX3N0YXRlICE9IFJlc2V0dGluZykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCA2YWI4OTgxNDM2MDQzY2JjZWZjNGI0NDc4OWQ4MTZmZDk2MzZmZThmLi5kMGQy
MTUxNGVjYTk0NWUwNjcyYjRiMzQ4MDZkZGEzMTNhZWM0YjkyIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC03MSw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRl
eHQoKTsKICAgICB2b2lkIHBsYXRmb3JtUnVuVW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVv
dXQpOworICAgIHZvaWQgcGxhdGZvcm1EaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBX
S0ZyYW1lUmVmKTsKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKTsKICAg
ICB2b2lkIGluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5KCk7CiAKQEAgLTgzLDggKzg0LDEx
IEBAIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBkaWRSZWNlaXZlU3luY2hy
b25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBX
S1R5cGVSZWYgbWVzc2FnZUJvZHkpOwogCiAgICAgLy8gV0tQYWdlTG9hZGVyQ2xpZW50Ci0gICAg
c3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqKTsKLSAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSk7Cisg
ICAgc3RhdGljIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBkaWRDb21taXRM
b2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKTsKKworICAgIHN0YXRpYyB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZik7CiAKICAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV0tQ
YWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHByb2Nlc3NEaWRDcmFz
aCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAwMTg5
YTI1NWZlNmEwNDBmODUwMzExNzAyNzA5OTdjNTFhYTRjOGZjLi41MmNlODE1MTJlODU4YjEyNTZh
MDNmMGFkMTY1NGE2YzJiZDU3OTIwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtMjczLDggKzI3MywxNSBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1XS1JldGFpblB0cjxXS1R5cGVSZWY+IFRl
c3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKFdLU3RyaW5nUmVmIC8qbWVzc2FnZU5hbWUqLywgV0tUeXBlUmVmIC8qbWVzc2FnZUJvZHkq
LykKK1dLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUs
IFdLVHlwZVJlZiBtZXNzYWdlQm9keSkKIHsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFdpbmRvd0lzS2V5IikpIHsKKyAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAg
ICAgIFdLQm9vbGVhblJlZiBpc0tleVZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPiht
ZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWluV2ViVmll
dygpLT5zZXRXaW5kb3dJc0tleShXS0Jvb2xlYW5HZXRWYWx1ZShpc0tleVZhbHVlKSk7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZv
cm1XZWJWaWV3R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2Vi
Vmlld0d0ay5jcHAKaW5kZXggMzczNWRjNWU2YzJlNThiOWI5ODFkNDQzYWM1NTY3NzhkZjA0NzYw
Ni4uMTY0NmI0NWFiOTY1OTZiZWYyOGY1YTBlNDI4ZjRhZjgxZGI2MDlkMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0zNSw2
ICszNSw3IEBAIG5hbWVzcGFjZSBXVFIgewogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZp
ZXcoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCkKICAgICA6
IG1fdmlldyhXS1ZpZXdDcmVhdGUoY29udGV4dCwgcGFnZUdyb3VwKSkKICAgICAsIG1fd2luZG93
KGd0a193aW5kb3dfbmV3KEdUS19XSU5ET1dfUE9QVVApKQorICAgICwgbV93aW5kb3dJc0tleSh0
cnVlKQogewogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIobV93aW5kb3cpLCBH
VEtfV0lER0VUKG1fdmlldykpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Q
bGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggNDY5MzgzZDFhMDgzOGU5M2E1MDg5NzRmYTBlOGNj
YzU1MDhiNzNmOS4uMGQyZDM4NGEzYTYwNWIxOTNhYWE5ZWMwNTAwNDk2NTY2ZGQzOGYwZSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1t
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpA
QCAtMjUsMTUgKzI1LDMyIEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKIAorQGlu
dGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyV2luZG93IDogTlNXaW5kb3cgeworICAgIFdUUjo6UGxh
dGZvcm1XZWJWaWV3KiBfcGxhdGZvcm1XZWJWaWV3OworfQorQHByb3BlcnR5IChub25hdG9taWMs
IGFzc2lnbikgV1RSOjpQbGF0Zm9ybVdlYlZpZXcqIHBsYXRmb3JtV2ViVmlldzsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cKK0BzeW50aGVzaXplIHBsYXRm
b3JtV2ViVmlldyA9IF9wbGF0Zm9ybVdlYlZpZXc7CisKKy0gKEJPT0wpaXNLZXlXaW5kb3cKK3sK
KyAgICByZXR1cm4gX3BsYXRmb3JtV2ViVmlldyA/IF9wbGF0Zm9ybVdlYlZpZXctPndpbmRvd0lz
S2V5KCkgOiBZRVM7Cit9CitAZW5kCisKIG5hbWVzcGFjZSBXVFIgewogCiBQbGF0Zm9ybVdlYlZp
ZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQorICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogewogICAgIE5TUmVj
dCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCk7CiAgICAgbV92aWV3ID0gW1tXS1Zp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdy
b3VwUmVmOnBhZ2VHcm91cFJlZl07CiAKICAgICBOU1JlY3Qgd2luZG93UmVjdCA9IE5TT2Zmc2V0
UmVjdChyZWN0LCAtMTAwMDAsIFsoTlNTY3JlZW4gKilbW05TU2NyZWVuIHNjcmVlbnNdIG9iamVj
dEF0SW5kZXg6MF0gZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAw
KTsKLSAgICBtX3dpbmRvdyA9IFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
d2luZG93UmVjdCBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVz
dFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0IHN0eWxl
TWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJl
ZCBkZWZlcjpZRVNdOworICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmlldyA9IHRoaXM7CiAgICAg
W21fd2luZG93IHNldENvbG9yU3BhY2U6W05TQ29sb3JTcGFjZSBnZW5lcmljUkdCQ29sb3JTcGFj
ZV1dOwogICAgIFtbbV93aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6bV92aWV3XTsKICAg
ICBbbV93aW5kb3cgb3JkZXJCYWNrOm5pbF07CkBAIC00OCw2ICs2NSw3IEBAIHZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogCiBQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogeworICAgIG1fd2luZG93LnBsYXRm
b3JtV2ViVmlldyA9IDA7CiAgICAgW21fd2luZG93IGNsb3NlXTsKICAgICBbbV93aW5kb3cgcmVs
ZWFzZV07CiAgICAgW21fdmlldyByZWxlYXNlXTsKQEAgLTYwLDcgKzc4LDggQEAgV0tQYWdlUmVm
IFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygp
CiB7Ci0gICAgLy8gSW1wbGVtZW50LgorICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6
bV92aWV3XTsKKyAgICBzZXRXaW5kb3dJc0tleSh0cnVlKTsKIH0KIAogV0tSZWN0IFBsYXRmb3Jt
V2ViVmlldzo6d2luZG93RnJhbWUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Bs
YXRmb3JtV2ViVmlld1F0LmNwcAppbmRleCA3YWYxNTUzMjFhZWQ1MGNiOWU1YmIwZDUzMjVmOGY5
ZjFkZWJiNGMxLi41NDM2YjM2ZGE0MGVhMjk4NzY2NDIyZTFmN2I4NDg5YzM5NTg1ZDc1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcApAQCAt
NjksNiArNjksNyBAQCBwcml2YXRlOgogUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXco
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKICAg
ICA6IG1fdmlldyhuZXcgUURlc2t0b3BXZWJWaWV3KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikp
CiAgICAgLCBtX3dpbmRvdyhuZXcgV3JhcHBlcldpbmRvdyhtX3ZpZXcpKQorICAgICwgbV93aW5k
b3dJc0tleSh0cnVlKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4v
UGxhdGZvcm1XZWJWaWV3V2luLmNwcAppbmRleCAzNDIwNWEwZmU2MDkwYWM1ZDc2ZmQ5M2M2YzEy
ZmVkMzg0YjFmNGQzLi42YjY0MDhkYjVkZWI0MGY3MmNlYmU2OTNkZTYyZjc2MzYyYjZiMTJlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4u
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5j
cHAKQEAgLTQ5LDYgKzQ5LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJXaW5kb3dDbGFzcygpCiB9
CiAKIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRy
dWUpCiB7CiAgICAgcmVnaXN0ZXJXaW5kb3dDbGFzcygpOwogCg==
</data>
<flag name="review"
          id="107900"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>