<?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>184635</bug_id>
          
          <creation_ts>2018-04-14 23:51:26 -0700</creation_ts>
          <short_desc>[Extra zoom mode] Programmatically changing focus when an element already has focus is a confusing experience</short_desc>
          <delta_ts>2018-04-17 23:03:13 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1414680</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-14 23:51:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/39440642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414731</commentid>
    <comment_count>1</comment_count>
      <attachid>337986</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-15 21:10:04 -0700</bug_when>
    <thetext>Created attachment 337986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414734</commentid>
    <comment_count>2</comment_count>
      <attachid>337988</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-15 22:09:00 -0700</bug_when>
    <thetext>Created attachment 337988
Fix macOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414764</commentid>
    <comment_count>3</comment_count>
      <attachid>337997</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-16 07:34:15 -0700</bug_when>
    <thetext>Created attachment 337997
Tweak layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415446</commentid>
    <comment_count>4</comment_count>
      <attachid>338190</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-04-17 20:01:47 -0700</bug_when>
    <thetext>Created attachment 338190
Rebase on master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415491</commentid>
    <comment_count>5</comment_count>
      <attachid>338190</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 23:03:11 -0700</bug_when>
    <thetext>Comment on attachment 338190
Rebase on master

Clearing flags on attachment: 338190

Committed r230752: &lt;https://trac.webkit.org/changeset/230752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415492</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-17 23:03:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337986</attachid>
            <date>2018-04-15 21:10:04 -0700</date>
            <delta_ts>2018-04-15 22:08:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184635-20180415211003.patch</filename>
            <type>text/plain</type>
            <size>24554</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ZDBhYTZlZDg0Y2Y2NTQw
OTU5ZjUwZGE1MTk0MjRlNjczY2E3MDMuLmRlYTY5NWYxY2ZkZmQ2NGJmMTBiMDFiZDI4MWRiNTBh
NDFjOGNjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9k
ZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFk
eSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJyZW50bHkgb24gaU9TLCB3ZSBhbGxvdyBlbGVtZW50IGZvY3VzIHRvIHByZXNl
bnQgVUkgaWYgdGhlIGtleWJvYXJkIGlzIGFscmVhZHkgc2hvd24uIEluIGV4dHJhIHpvb20gbW9k
ZSwKKyAgICAgICAgdGhpcyB3b3VsZCBsZWFkIHRvIGEgY29uZnVzaW5nIGV4cGVyaWVuY2Ugd2hl
biB0aGUgZm9jdXMgZm9ybSBjb250cm9sIG92ZXJsYXkgaXMgZGlzYWJsZWQsIHNpbmNlIGZ1bGxz
Y3JlZW4KKyAgICAgICAgaW5wdXQgdmlldyBjb250cm9sbGVycyBhcmUgc3dhcHBlZCBvdXQgZnJv
bSB1bmRlcm5lYXRoIHRoZSB1c2VyLiBDdXJyZW50bHksIHRoaXMgYWxzbyBwdXRzIHRoZSBVSSBw
cm9jZXNzIGludG8gYQorICAgICAgICBiYWQgc3RhdGUgd2hlcmUgdGhlIGZvY3VzZWQgZm9ybSBj
b250cm9sIG92ZXJsYXkgaXMgYWN0aXZlLCBidXQgc3RpbGwgaGlkZGVuLiBUaGlzIHBhdGNoIG1h
a2VzIHNvbWUgdHdlYWtzIHRvCisgICAgICAgIGlucHV0IHZpZXcgY29udHJvbGxlciBoYW5kbGlu
ZyBpbiB0aGUgVUkgcHJvY2VzcyB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcywgYW5kIGFsc28gYWRk
cyBXZWJLaXRUZXN0UnVubmVyIHN1cHBvcnQKKyAgICAgICAgZm9yIHNpbXVsYXRpbmcgaW50ZXJh
Y3Rpb25zIHdpdGggc2VsZWN0IG1lbnVzIGluIGV4dHJhIHpvb20gbW9kZS4gU2VlIGNvbW1lbnRz
IGJlbG93IGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9leHRy
YXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgQWRk
IG5ldyBTUEkgZGVsZWdhdGUgaG9va3MgdG8gbm90aWZ5IHRoZSBVSSBkZWxlZ2F0ZSB3aGVuIHZp
ZXcgY29udHJvbGxlcnMgYXJlIHByZXNlbnRlZCBvciBkaXNtaXNzZWQgaW4gZXh0cmEKKyAgICAg
ICAgem9vbSBtb2RlLiBTZWUgLXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3Rl
ZE5vZGUgYW5kIC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCk6CisKKyAgICAgICAgU2VlIHRoZSBjb21tZW50IGJl
bG93IC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0
aW5nTm9kZTp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZp
dHlTdGF0ZTp1c2VyT2JqZWN0Ol0pOgorCisgICAgICAgIEluIGV4dHJhIHpvb20gbW9kZSwgd2hl
biBjaGFuZ2luZyBmb2N1cyBmcm9tIG9uZSBhc3Npc3RlZCBub2RlIHRvIGFub3RoZXIsIG9ubHkg
YWxsb3cgdGhlIHNlY29uZCBub2RlIHRvIGJlCisgICAgICAgIGFzc2lzdGVkIGlmIHRoZSBmb2N1
c2VkIGZvcm0gY29udHJvbCBvdmVybGF5IGlzIGJlaW5nIHNob3duLiBPdGhlcndpc2UsIChpLmUu
IHdoZW4gYSBmdWxsc2NyZWVuIGlucHV0IHZpZXcKKyAgICAgICAgY29udHJvbGxlciBpcyBiZWlu
ZyBwcmVzZW50ZWQpLCBkb24ndCBhbGxvdyBmb2N1cyB0byBzdGFydCBhbiBpbnB1dCBzZXNzaW9u
LgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgbWFrZSBhIG1pbm9yIHR3ZWFrIHRvIGFsbG93IHRo
ZSBwcmV2aW91cyBub2RlIHRvIGJsdXIsIGV2ZW4gaWYgd2UgYXJlIG5vdCBzaG93aW5nIHRoZSBr
ZXlib2FyZCBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuIFdpdGhvdXQgdGhp
cyBhZGp1c3RtZW50LCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgcGFnZSBoYXMgcHJvZ3JhbW1hdGlj
YWxseSBmb2N1c2VkCisgICAgICAgIGFub3RoZXIgZWxlbWVudCB3aGlsZSBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgd2UnbGwgc2hvdyB0aGUgb2xkIHZp
ZXcgY29udHJvbGxlciBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBwcmVzZW50Vmlld0NvbnRyb2xsZXJGb3JDdXJyZW50QXNz
aXN0ZWROb2RlXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlzbWlzc0FsbElucHV0Vmll
d0NvbnRyb2xsZXJzOl0pOgorCisgICAgICAgIEN1cnJlbnRseSwgd2hlbiBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgdGhlIHdlYiBwcm9jZXNzIGdldHMg
YmFja2dyb3VuZGVkLiBUaGlzCisgICAgICAgIHByZXZlbnRzIGV2ZW50IGhhbmRsZXJzIGZyb20g
ZXhlY3V0aW5nLCB3aGljaCBsZWFkcyB0byBzdHJhbmdlIGJlaGF2aW9ycyBpbiBtYW55IGNhc2Vz
IChmb3IgaW5zdGFuY2U6IGlmIHdlCisgICAgICAgIGhhdmUgYSBtdWx0aXBsZSBzZWxlY3QsIGFu
ZCB0aGUgImNoYW5nZSIgZXZlbnQgaGFuZGxlciBibHVycyB0aGUgc2VsZWN0LCB0aGUgdXNlciBt
YXkgY2hlY2sgb3IgdW5jaGVjayBtdWx0aXBsZQorICAgICAgICBpdGVtcywgYnV0IG9ubHkgdGhl
IGZpcnN0IGNoYW5nZSB3aWxsIGFjdHVhbGx5IHRha2UgZWZmZWN0KS4KKworICAgICAgICBUbyBm
aXggdGhpcywgd2UgbWFpbnRhaW4gYSBiYWNrZ3JvdW5kIGFjdGl2aXR5IHRva2VuIHdoaWxlIHBy
ZXNlbnRpbmcgYW4gaW5wdXQgdmlldyBjb250cm9sbGVyLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZEJlZ2luRWRpdGluZzpdKToKKworICAgICAg
ICBTdGFydCBoaWRpbmcgdGhlIGZvY3VzZWQgZm9ybSBvdmVybGF5IHdoZW4gcmUtcHJlc2VudGlu
ZyBhbiBpbnB1dCB2aWV3IGNvbnRyb2xsZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGJhaWwgZnJvbQor
ICAgICAgICBzaG93aW5nIGZ1bGxzY3JlZW4gaW5wdXQgVUkgZm9yIGFub3RoZXIgZm9jdXNlZCBl
bGVtZW50IGlmIGZvY3VzIHByb2dyYW1tYXRpY2FsbHkgY2hhbmdlcyB3aGlsZSB0aGUgY3VycmVu
dAorICAgICAgICBmdWxsc2NyZWVuIGlucHV0IHZpZXcgY29udHJvbGxlciBpcyBwcmVzZW50ZWQs
IGR1ZSB0byB0aGUgLWlzSGlkZGVuIGNoZWNrIGluIC1fc3RhcnRBc3Npc3RpbmdOb2RlOi4KKwor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6XSk6
CisKKyAgICAgICAgU2ltdWxhdGUgdGFwcGluZyBhIGdpdmVuIHJvdyBpbiBzZWxlY3QgbWVudSBV
SSBpbiBleHRyYSB6b29tIG1vZGUuCisKIDIwMTgtMDQtMTQgIENhcmxvcyBFZHVhcmRvIFJhbWFs
aG8gIDxjYWR1YmVudHplbkBnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBCdWlsZCBp
cyBicm9rZW4gYWZ0ZXIgcjIzMDY0MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZDEyYWEyMGRkMWY3ODU3
NGMzYzljNjkyODUxZTcwZTU3MjYwNTUwZi4uZjdiNWVmZDFhODk3YzQ5M2U5NTI5ZWUzMTY0NDMz
ZGUzOTRhMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNTMsNiArMTUzLDggQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIC0gKE5TSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
YXRhT3duZXJGb3JEcmFnU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2VuZGlmCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6
KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxF
KGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBy
ZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29u
dHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250
cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lkKV9jYW5jZWxJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJmNWZlNGE1MmQ5ZWM3OWExMjAyOTM4MjZkMTM1
OTkyNTg5MDQwMjAuLjlhMDFkNWI0YjM1NzFhODg3NjYxMmM3NWEzY2FkNzI5MDQ4NGEzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQwNyw0
ICsxNDA3LDI2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eSh1aW50NjRfdCBjYWxsYmFja0lkZW50CiAgICAgY2FsbGJhY2soaXNMb2Nh
bGx5UmVhY2hhYmxlID8gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZ
ZXMgOiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKIH0KIAor
I2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp0YWtl
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKQoreworICAgIGlmICht
X2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbkZvcm1Db250cm9scykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5G
b3JtQ29udHJvbHMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgaXQgaXMgcHJlc2VudGluZyBmdWxsc2NyZWVuIFVJ
IGZvciBmb3JtIGNvbnRyb2xzLiIpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVsZWFz
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCkKK3sKKyAgICBpZiAo
IW1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVl
bkZvcm1Db250cm9scyA9IG51bGxwdHI7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSBpdCBoYXMgZGlzbWlzc2VkIGZ1bGxzY3JlZW4gVUkgZm9yIGZvcm0gY29udHJvbHMuIik7Cit9
CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzY3NzBlYTg1NDhiZGZmNWM2MjlmNDNkNjNkMDMy
YTE3MDE1YjVhZC4uNjA3YjliMmFlNGFkZDI0NjY1MDFiMjE4ODZjMzRjOTExYWZkMGJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMiw2ICsyMTIs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZFdlYlBhZ2VQcm94eShXZWJQYWdlUHJveHkm
KTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95ZWQoU3VzcGVuZGVkUGFnZVByb3h5
Jik7CiAKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIHZvaWQgdGFrZUJhY2tncm91
bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CisgICAgdm9pZCByZWxlYXNlQmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKTsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwpAQCAtMzQwLDYg
KzM0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
KT4+IG1fbG9jYWxQb3J0QWN0aXZpdHlDb21wbGV0aW9uSGFuZGxlcnM7CiAKICAgICBib29sIG1f
aGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUo
RVhUUkFfWk9PTV9NT0RFKQorICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuIG1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xz
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IGExZGI5OTk2ZGU0YThjOTI1YmI0NzFhNmI5NDhmNWVkYmNhNmU3NWUuLjY0ODRjYjMxNzE4MTQz
MDVkZTc5OTcyNjZkMGMyMTM3ZTNlZGI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDAyNiwxOCAr
NDAyNiwyNiBAQCAtICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbgogICAgIGlmIChbaW5wdXREZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmZvY3VzU2hvdWxkU3RhcnRJ
bnB1dFNlc3Npb246KV0pCiAgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9IFtpbnB1dERlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246Zm9jdXNl
ZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsKLSAgICAgICAgLy8gVGhlIGRlZmF1bHQg
YmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVy
YWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KLSAgICAgICAgc2hvdWxk
U2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX2lzQ2hhbmdpbmdGb2N1cyB8fCBj
aGFuZ2luZ0FjdGl2aXR5U3RhdGU7Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAg
ICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmlzUGVy
Zm9ybWluZ0Ryb3AoKTsKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gYWxs
b3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nLgorICAgICAgICAv
LyBXZSBhbHNvIGFsbG93IG5vZGUgYXNzaXN0YW5jZSBpZiB0aGUga2V5Ym9hcmQgYWxyZWFkeSBp
cyBzaG93aW5nLCB1bmxlc3Mgd2UncmUgaW4gZXh0cmEgem9vbSBtb2RlLgorICAgICAgICBzaG91
bGRTaG93S2V5Ym9hcmQgPSB1c2VySXNJbnRlcmFjdGluZworI2lmIEVOQUJMRShFWFRSQV9aT09N
X01PREUpCisgICAgICAgICAgICB8fCAoX2lzQ2hhbmdpbmdGb2N1cyAmJiAhW19mb2N1c2VkRm9y
bUNvbnRyb2xWaWV3IGlzSGlkZGVuXSkKKyNlbHNlCisgICAgICAgICAgICB8fCBfaXNDaGFuZ2lu
Z0ZvY3VzCiAjZW5kaWYKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgICAgICAgICAgfHwg
X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdEcm9wKCkKKyNlbmRpZgorICAg
ICAgICAgICAgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwogICAgIH0KLSAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGJsdXJQcmV2aW91c05v
ZGUpCiAgICAgICAgIFtzZWxmIF9zdG9wQXNzaXN0aW5nTm9kZV07CiAKKyAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFpc0Fzc2lzdGFibGVJ
bnB1dFR5cGUoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTQyMzEsNiArNDIzOSwxNiBAQCAtICh2b2lkKXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJl
bnRBc3Npc3RlZE5vZGUKICAgICAgICAgW19pbnB1dE5hdmlnYXRpb25WaWV3Q29udHJvbGxlckZv
ckZ1bGxTY3JlZW5JbnB1dHMgcHVzaFZpZXdDb250cm9sbGVyOl9wcmVzZW50ZWRGdWxsU2NyZWVu
SW5wdXRWaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X3ByZXNl
bnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21w
bGV0aW9uOm5pbF07CisKKyAgICAvLyBQcmVzZW50aW5nIGEgZnVsbHNjcmVlbiBpbnB1dCB2aWV3
IGNvbnRyb2xsZXIgZnVsbHkgb2JzY3VyZXMgdGhlIHdlYiB2aWV3LiBXaXRob3V0IHRha2luZyB0
aGlzIHRva2VuLCB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyB3aWxsIGdldCBiYWNrZ3JvdW5kZWQu
CisgICAgX3BhZ2UtPnByb2Nlc3MoKS50YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxs
c2NyZWVuSW5wdXQoKTsKKworICAgIFtwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIudHJhbnNpdGlv
bkNvb3JkaW5hdG9yIGFuaW1hdGVBbG9uZ3NpZGVUcmFuc2l0aW9uOm5pbCBjb21wbGV0aW9uOlt3
ZWFrV2ViVmlldyA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oX3dlYlZpZXcpLCBjb250cm9sbGVy
ID0gX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyXSAoaWQgPFVJVmlld0Nv
bnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0
cm9uZ1dlYlZpZXcgPSB3ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+KFtzdHJvbmdXZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkUHJlc2VudEZvY3VzZWRF
bGVtZW50Vmlld0NvbnRyb2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpzdHJvbmdXZWJWaWV3LmdldCgpIGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOmNvbnRyb2xsZXIuZ2V0KCldOworICAgIH1dOwogfQogCiAtICh2b2lkKWRpc21pc3NBbGxJ
bnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZApAQCAtNDIzOCwxNiArNDI1NiwyOCBA
QCAtICh2b2lkKWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZAog
ICAgIGF1dG8gbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBXVEZNb3ZlKF9pbnB1dE5hdmlnYXRpb25W
aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5JbnB1dHMpOwogICAgIGF1dG8gcHJlc2VudGVkQ29u
dHJvbGxlciA9IFdURk1vdmUoX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVy
KTsKIAorICAgIGlmICghcHJlc2VudGVkQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKFtuYXZpZ2F0aW9uQ29udHJvbGxlciB2aWV3Q29udHJvbGxlcnNdLmxhc3RPYmplY3Qg
PT0gcHJlc2VudGVkQ29udHJvbGxlci5nZXQoKSkKICAgICAgICAgW25hdmlnYXRpb25Db250cm9s
bGVyIHBvcFZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRlZENvbnRyb2xsZXIgZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5p
bWF0ZWQgY29tcGxldGlvbjpuaWxdOwogCisgICAgW1twcmVzZW50ZWRDb250cm9sbGVyIHRyYW5z
aXRpb25Db29yZGluYXRvcl0gYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246bmlsIGNvbXBsZXRp
b246W3dlYWtXZWJWaWV3ID0gV2Vha09iakNQdHI8V0tXZWJWaWV3Pihfd2ViVmlldyksIGNvbnRy
b2xsZXIgPSBwcmVzZW50ZWRDb250cm9sbGVyXSAoaWQgPFVJVmlld0NvbnRyb2xsZXJUcmFuc2l0
aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0cm9uZ1dlYlZpZXcgPSB3
ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtzdHJvbmdXZWJW
aWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRy
b2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzdHJvbmdXZWJWaWV3
LmdldCgpIGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOmNvbnRyb2xsZXIu
Z2V0KCldOworICAgIH1dOworCiAgICAgaWYgKF9zaG91bGRSZXN0b3JlRmlyc3RSZXNwb25kZXJT
dGF0dXNBZnRlckxvc2luZ0ZvY3VzKSB7CiAgICAgICAgIF9zaG91bGRSZXN0b3JlRmlyc3RSZXNw
b25kZXJTdGF0dXNBZnRlckxvc2luZ0ZvY3VzID0gTk87CiAgICAgICAgIGlmICghc2VsZi5pc0Zp
cnN0UmVzcG9uZGVyKQogICAgICAgICAgICAgW3NlbGYgYmVjb21lRmlyc3RSZXNwb25kZXJdOwog
ICAgIH0KKworICAgIF9wYWdlLT5wcm9jZXNzKCkucmVsZWFzZUJhY2tncm91bmRBY3Rpdml0eVRv
a2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CiB9CiAKIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9s
Vmlld0RpZFN1Ym1pdDooV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwpAQCAtNDI2NCw4
ICs0Mjk0LDEyIEBAIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZENhbmNlbDooV0tG
b2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwogLSAodm9pZClmb2N1c2VkRm9ybUNvbnRyb2xW
aWV3RGlkQmVnaW5FZGl0aW5nOihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgKil2aWV3CiB7CiAg
ICAgW3NlbGYgdXBkYXRlQ3VycmVudEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOlt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSAoYm9vbCBkaWRVcGRhdGUpIHsKLSAg
ICAgICAgaWYgKGRpZFVwZGF0ZSkKLSAgICAgICAgICAgIFt3ZWFrU2VsZiBwcmVzZW50Vmlld0Nv
bnRyb2xsZXJGb3JDdXJyZW50QXNzaXN0ZWROb2RlXTsKKyAgICAgICAgaWYgKCFkaWRVcGRhdGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1
cnJlbnRBc3Npc3RlZE5vZGVdOworICAgICAgICBbc3Ryb25nU2VsZi0+X2ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXcgaGlkZTpZRVNdOwogICAgIH1dOwogfQogCkBAIC01NDE2LDggKzU0NTAsMTMgQEAg
LSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0
aW9uCiAKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooTlNJbnRlZ2VyKXJv
d0luZGV4CiB7CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBpZiAoW19wcmVzZW50
ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlciBpc0tpbmRPZkNsYXNzOltXS1NlbGVjdE1l
bnVMaXN0Vmlld0NvbnRyb2xsZXIgY2xhc3NdXSkKKyAgICAgICAgWyhXS1NlbGVjdE1lbnVMaXN0
Vmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkRnVsbFNjcmVlbklucHV0Vmlld0NvbnRyb2xsZXIu
Z2V0KCkgc2VsZWN0SXRlbUF0SW5kZXg6cm93SW5kZXhdOworI2Vsc2UKICAgICBpZiAoW19pbnB1
dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtU2VsZWN0Q29udHJvbCBzZWxmXV0pCiAg
ICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVyYWwgc2VsZWN0Um93
OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0aW9uOk5PXTsKKyNlbmRpZgog
fQogCiAtIChOU1N0cmluZyAqKXNlbGVjdEZvcm1Qb3BvdmVyVGl0bGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYzQ4ZjVjY2ExODBkMzVhMWJi
MjdjNmJkNmNmZmZmZWQyYmRhODEyLi5iZmU2ZDBkY2UwMjIwYTg2NDQ2ZDFkNjdhNzliMGM0ZjUw
YmIzZDIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gUHJvZ3JhbW1hdGljYWxs
eSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMgaXMgYSBj
b25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQ0MDY0Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJp
bmcgdG8gc3VwcG9ydCBpbnZva2luZyBgZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2tgIGFuZCBgZGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2tgIHdoZW4gKHJlc3BlY3RpdmVseSkKKyAgICAgICAgZGlzbWlz
c2luZyBvciBwcmVzZW50aW5nIGZ1bGxzY3JlZW4gaW5wdXQgdmlldyBjb250cm9sbGVycyBpbiBl
eHRyYSB6b29tIG1vZGUuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RS
dW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgaW5pdFdp
dGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfaW52b2tlU2hvd0tl
eWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IF9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XSk6CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2tleWJvYXJkRGlkU2hvdzpdKToKKyAgICAgICAgKC1bVGVz
dFJ1bm5lcldLV2ViVmlldyBfa2V5Ym9hcmREaWRIaWRlOl0pOgorICAgICAgICAoLVtUZXN0UnVu
bmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZERpc21p
c3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOl0pOgorCiAyMDE4LTA0LTEzICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFJlbG9hZGVkXSBVcGRh
dGUgY2xhc3MgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmluZGV4IGM2Y2Q0ZWRiOTU0OGEzNDNmMjNiYThi
Njg3NjQyNGIyN2ExOTA2NTguLjMxZWIyODcwNDAzZTc4YTZlYTczYWYxYTAwODI2ZmRmZTgwZmNj
MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0KQEAgLTMyLDYgKzMyLDcgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBv
cnQgIlVJS2l0VGVzdFNQSS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiBAaW50ZXJmYWNlIFdLV2Vi
VmlldyAoKQogCkBAIC00NiwxMiArNDcsMTEgQEAgQGVuZAogCiAjaWYgV0tfQVBJX0VOQUJMRUQK
IAotQGludGVyZmFjZSBUZXN0UnVubmVyV0tXZWJWaWV3ICgpIHsKK0BpbnRlcmZhY2UgVGVzdFJ1
bm5lcldLV2ViVmlldyAoKSA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gewogICAgIFJldGFpblB0cjxO
U051bWJlciAqPiBtX3N0YWJsZVN0YXRlT3ZlcnJpZGU7CiB9CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSB2b2lkICheem9vbVRvU2NhbGVDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXnNob3dLZXlib2FyZENvbXBsZXRpb25I
YW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChecmV0cmll
dmVTcGVha1NlbGVjdGlvbkNvbnRlbnRDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYykgQk9PTCBpc1Nob3dpbmdLZXlib2FyZDsKIApAQCAtNzQsNiArNzQsOCBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRp
b246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogICAgICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciog
Y2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwogICAgICAgICBb
Y2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZERpZFNo
b3c6KSBuYW1lOlVJS2V5Ym9hcmREaWRTaG93Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogICAg
ICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2Fy
ZERpZEhpZGU6KSBuYW1lOlVJS2V5Ym9hcmREaWRIaWRlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxd
OworCisgICAgICAgIHNlbGYuVUlEZWxlZ2F0ZSA9IHNlbGY7CiAgICAgfQogICAgIHJldHVybiBz
ZWxmOwogfQpAQCAtOTQsNyArOTYsNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBzZWxmLnJvdGF0
aW9uRGlkRW5kQ2FsbGJhY2sgPSBuaWw7CiAKICAgICBzZWxmLnpvb21Ub1NjYWxlQ29tcGxldGlv
bkhhbmRsZXIgPSBuaWw7Ci0gICAgc2VsZi5zaG93S2V5Ym9hcmRDb21wbGV0aW9uSGFuZGxlciA9
IG5pbDsKICAgICBzZWxmLnJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50Q29tcGxldGlvbkhh
bmRsZXIgPSBuaWw7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CkBAIC0xMzksNyArMTQwLDcgQEAg
LSAodm9pZCl6b29tVG9TY2FsZTooZG91YmxlKXNjYWxlIGFuaW1hdGVkOihCT09MKWFuaW1hdGVk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2kKICAgICBbc2VsZi5zY3JvbGxWaWV3IHNldFpvb21TY2Fs
ZTpzY2FsZSBhbmltYXRlZDphbmltYXRlZF07CiB9CiAKLS0gKHZvaWQpX2tleWJvYXJkRGlkU2hv
dzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZvaWQpX2ludm9rZVNob3dLZXli
b2FyZENhbGxiYWNrSWZOZWNlc3NhcnkKIHsKICAgICBpZiAoc2VsZi5pc1Nob3dpbmdLZXlib2Fy
ZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ5LDcgKzE1MCw3IEBAIC0gKHZvaWQpX2tleWJvYXJk
RGlkU2hvdzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICAgICAgc2VsZi5kaWRT
aG93S2V5Ym9hcmRDYWxsYmFjaygpOwogfQogCi0tICh2b2lkKV9rZXlib2FyZERpZEhpZGU6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCistICh2b2lkKV9pbnZva2VIaWRlS2V5Ym9hcmRD
YWxsYmFja0lmTmVjZXNzYXJ5CiB7CiAgICAgaWYgKCFzZWxmLmlzU2hvd2luZ0tleWJvYXJkKQog
ICAgICAgICByZXR1cm47CkBAIC0xNTksNiArMTYwLDE2IEBAIC0gKHZvaWQpX2tleWJvYXJkRGlk
SGlkZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICAgICAgc2VsZi5kaWRIaWRl
S2V5Ym9hcmRDYWxsYmFjaygpOwogfQogCistICh2b2lkKV9rZXlib2FyZERpZFNob3c6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgX2ludm9rZVNob3dLZXlib2Fy
ZENhbGxiYWNrSWZOZWNlc3NhcnldOworfQorCistICh2b2lkKV9rZXlib2FyZERpZEhpZGU6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgX2ludm9rZUhpZGVLZXli
b2FyZENhbGxiYWNrSWZOZWNlc3NhcnldOworfQorCiAtICh2b2lkKXNjcm9sbFZpZXdXaWxsQmVn
aW5ab29taW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWaWV3OihVSVZpZXcgKil2
aWV3CiB7CiAgICAgW3N1cGVyIHNjcm9sbFZpZXdXaWxsQmVnaW5ab29taW5nOnNjcm9sbFZpZXcg
d2l0aFZpZXc6dmlld107CkBAIC0yMzEsNyArMjQyLDIxIEBAIC0gKFVJRWRnZUluc2V0cylfc2Fm
ZUFyZWFJbnNldHNGb3JGcmFtZTooQ0dSZWN0KWZyYW1lIGluU3VwZXJ2aWV3OihVSVZpZXcgKil2
aWV3CiAgICAgcmV0dXJuIF9vdmVycmlkZVNhZmVBcmVhSW5zZXRzOwogfQogCi0jZW5kaWYKKyNw
cmFnbWEgbWFyayAtIFdLVUlEZWxlZ2F0ZVByaXZhdGUKKworLy8gSW4gZXh0cmEgem9vbSBtb2Rl
LCBmdWxsc2NyZWVuIGZvcm0gY29udHJvbCBVSSB0YWtlcyBvbiB0aGUgc2FtZSByb2xlIGFzIGtl
eWJvYXJkcyBhbmQgaW5wdXQgdmlldyBjb250cm9sbGVycworLy8gaW4gVUlLaXQuIEFzIHN1Y2gs
IHdlIGFsbG93IGtleWJvYXJkIHByZXNlbnRhdGlvbiBhbmQgZGlzbWlzc2FsIGNhbGxiYWNrcyB0
byB3b3JrIGluIGV4dHJhIHpvb20gbW9kZSBhcyB3ZWxsLgorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWRQcmVzZW50Rm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjoo
VUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIKK3sKKyAgICBbc2VsZiBfaW52b2tlU2hvd0tl
eWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV07Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRyb2xsZXI6KFVJ
Vmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyCit7CisgICAgW3NlbGYgX2ludm9rZUhpZGVLZXli
b2FyZENhbGxiYWNrSWZOZWNlc3NhcnldOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzODdkODY5MjVjMjE2OGI3MmY0YTlhZjFjNmMzZWIyZDhkMzFmOWM3
Li5hNjJiOTBiODU1NzU5NGIxZWFjMWU1YzBhYTdjNTMxZmI4ZWVlYjI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2lu
ZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcg
ZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgbGF5b3V0IHRl
c3QgdG8gZXhlcmNpc2UgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHMgaW4gZXh0cmEg
em9vbSBtb2RlOgorCisgICAgICAgIDEuIEZvY3VzIHNlbGVjdCBlbGVtZW50ICMxLgorICAgICAg
ICAyLiBDaG9vc2UgYW4gdW5zZWxlY3RlZCBvcHRpb24uCisgICAgICAgIDMuIFByb2dyYW1tYXRp
Y2FsbHkgZm9jdXMgc2VsZWN0IGVsZW1lbnQgIzIgaW4gdGhlICJjaGFuZ2UiIGV2ZW50IGhhbmRs
ZXIuCisgICAgICAgIDQuIENob29zZSBhbiB1bnNlbGVjdGVkIG9wdGlvbi4KKyAgICAgICAgNS4g
UHJvZ3JhbW1hdGljYWxseSBibHVyIHNlbGVjdCBlbGVtZW50ICMyIGluIHRoZSAiY2hhbmdlIiBl
dmVudCBoYW5kbGVyLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKworICAgICAgICBT
a2lwIGxheW91dCB0ZXN0cyBpbiBmYXN0L2V2ZW50cy9leHRyYXpvb20vIGluIE9wZW5Tb3VyY2Uu
CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1j
aGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9l
eHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBl
ci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUucmV0dXJuLm5ldy5Qcm9taXNlKToKKyAgICAgICAgKHdp
bmRvdy5VSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUpOgorCiAyMDE4LTA0LTEzICBDYXJs
b3MgUmFtYWxobyAgPGNhZHViZW50emVuQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXVtXYXls
YW5kXSBVbmZsYWcgdGVzdC1jYXNlIGZhc3QvY2FudmFzL2NhbnZhcy1jcmVhdGVQYXR0ZXJuLXZp
ZGVvLW1vZGlmeS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkOWVmZTE3NTBhY2Y3NDE5Zjll
ODlkNzM2Y2U1MGRmNTE1M2RjMzVmLi5mYjRhNzU5YTIyZWIwMTU5M2FlMjI5MDNiZDQxNGRkYzNh
NTBlOTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAgZmFzdC9mb3Jtcy9p
b3MgWyBTa2lwIF0KIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3
cG9ydC9pb3MvIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KK2Zhc3QvZXZlbnRz
L2V4dHJhem9vbSBbIFNraXAgXQogZmFzdC9ldmVudHMvdG91Y2gvaW9zIFsgU2tpcCBdCiBmYXN0
L2hpc3RvcnkvaW9zIFsgU2tpcCBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBTa2lwIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVy
aW5nLWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9l
eHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiNzUwMDlmMDlkMGE4M2E5MjIwYzM2MjQwN2ZlMjY3NTQ3Y2FjNTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZv
Y3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKK0Nob29zaW5n
IHNlY29uZCBvcHRpb24gaW4gdG9wIHNlbGVjdC4uLgorT3B0aW9uIHR3byBzaG91bGQgYmUgc2Vs
ZWN0ZWQ6IHRydWUKK0Nob29zaW5nIHNlY29uZCBvcHRpb24gaW4gYm90dG9tIHNlbGVjdC4uLgor
T3B0aW9uIGZvdXIgc2hvdWxkIGJlIHNlbGVjdGVkOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1l
dmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXh0cmF6b29tL2NoYW5nZS1mb2N1
cy1kdXJpbmctY2hhbmdlLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkyZGRkN2ZjYjI2NmJiYjQ5
MTE2NjIyNjBiYWIyYjYwMjI2ZjNkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1s
CkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSwgaHRtbCB7CisgICAgICAgICAgICBtYXJnaW46IDA7Cisg
ICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgfQorICAgICAgICBzZWxlY3Qgewor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7CisgICAg
ICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNj
cmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIC8vIEZpcnN0LCB0YXAgb24gdGhlIHRvcCBz
ZWxlY3QgYW5kIGNob29zZSB0aGUgc2Vjb25kIG9wdGlvbi4gQ2hhbmdpbmcgdGhlIHZhbHVlIG9m
IHRoZSBzZWxlY3QgY2F1c2VzIHRoZQorICAgICAgICAgICAgLy8gYm90dG9tIHNlbGVjdCB0byBi
ZSBmb2N1c2VkLgorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0Rm9y
SW5wdXRTZXNzaW9uQXQoNTAsIDQwKTsKKyAgICAgICAgICAgIG91dHB1dC5pbm5lckhUTUwgKz0g
IkNob29zaW5nIHNlY29uZCBvcHRpb24gaW4gdG9wIHNlbGVjdC4uLjxicj4iOworICAgICAgICAg
ICAgVUlIZWxwZXIuc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdygxKTsKKyAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOworICAgICAgICAgICAgb3V0
cHV0LmlubmVySFRNTCArPSBgT3B0aW9uIHR3byBzaG91bGQgYmUgc2VsZWN0ZWQ6ICR7dHdvLnNl
bGVjdGVkfTxicj5gOworCisgICAgICAgICAgICAvLyBOb3cgdGFwIG9uIHRoZSBib3R0b20gc2Vs
ZWN0IGFuZCBjaG9vc2UgdGhlIHNlY29uZCBvcHRpb24uIENoYW5naW5nIHRoZSB2YWx1ZSBvZiB0
aGlzIHNlbGVjdCBjYXVzZXMgdGhlCisgICAgICAgICAgICAvLyBzZWxlY3QgdG8gYmx1ciwgZGlz
bWlzc2luZyB0aGUgaW5wdXQgdmlldy4KKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlQW5kV2FpdEZvcklucHV0U2Vzc2lvbkF0KDUwLCAxMjApOworICAgICAgICAgICAgb3V0cHV0
LmlubmVySFRNTCArPSAiQ2hvb3Npbmcgc2Vjb25kIG9wdGlvbiBpbiBib3R0b20gc2VsZWN0Li4u
PGJyPiI7CisgICAgICAgICAgICBVSUhlbHBlci5zZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93
KDEpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9IaWRlKCk7
CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9IGBPcHRpb24gZm91ciBzaG91bGQgYmUg
c2VsZWN0ZWQ6ICR7Zm91ci5zZWxlY3RlZH08YnI+YDsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8c2VsZWN0IGlkPSJ0b3AiIG9uY2hhbmdlPSJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYm90dG9tJykuZm9jdXMoKSI+CisgICAgPG9wdGlvbiBzZWxlY3RlZD5PbmU8L29wdGlv
bj4KKyAgICA8b3B0aW9uIGlkPSJ0d28iPlR3bzwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJib3R0b20iIG9uY2hhbmdlPSJ0aGlzLmJsdXIoKSI+CisgICAgPG9wdGlvbiBzZWxlY3Rl
ZD5UaHJlZTwvb3B0aW9uPgorICAgIDxvcHRpb24gaWQ9ImZvdXIiPkZvdXI8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHByZSBpZD0ib3V0cHV0Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDIyYWRhZWJiZGNhMmIzNzM4M2YxNzU5ZDU0OTRh
YjAwM2JiNmE1NGUuLjA5OWRmODMxMGMwZjk4YWZiZjFlOGFjYTJkZWU5NGM5YzIxYzVhNmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMTAwLDYgKzEwMCwxNiBAQCB3aW5kb3cu
VUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0
YXRpYyB3YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChg
CisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlT
Y3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCiAgICAgc3RhdGljIGdldFVJQ2FyZXRSZWN0KCkKICAgICB7CiAgICAg
ICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPUygpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337988</attachid>
            <date>2018-04-15 22:09:00 -0700</date>
            <delta_ts>2018-04-16 07:34:14 -0700</delta_ts>
            <desc>Fix macOS builds</desc>
            <filename>bug-184635-20180415220859.patch</filename>
            <type>text/plain</type>
            <size>24577</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ZDBhYTZlZDg0Y2Y2NTQw
OTU5ZjUwZGE1MTk0MjRlNjczY2E3MDMuLmRlYTY5NWYxY2ZkZmQ2NGJmMTBiMDFiZDI4MWRiNTBh
NDFjOGNjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9k
ZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFk
eSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJyZW50bHkgb24gaU9TLCB3ZSBhbGxvdyBlbGVtZW50IGZvY3VzIHRvIHByZXNl
bnQgVUkgaWYgdGhlIGtleWJvYXJkIGlzIGFscmVhZHkgc2hvd24uIEluIGV4dHJhIHpvb20gbW9k
ZSwKKyAgICAgICAgdGhpcyB3b3VsZCBsZWFkIHRvIGEgY29uZnVzaW5nIGV4cGVyaWVuY2Ugd2hl
biB0aGUgZm9jdXMgZm9ybSBjb250cm9sIG92ZXJsYXkgaXMgZGlzYWJsZWQsIHNpbmNlIGZ1bGxz
Y3JlZW4KKyAgICAgICAgaW5wdXQgdmlldyBjb250cm9sbGVycyBhcmUgc3dhcHBlZCBvdXQgZnJv
bSB1bmRlcm5lYXRoIHRoZSB1c2VyLiBDdXJyZW50bHksIHRoaXMgYWxzbyBwdXRzIHRoZSBVSSBw
cm9jZXNzIGludG8gYQorICAgICAgICBiYWQgc3RhdGUgd2hlcmUgdGhlIGZvY3VzZWQgZm9ybSBj
b250cm9sIG92ZXJsYXkgaXMgYWN0aXZlLCBidXQgc3RpbGwgaGlkZGVuLiBUaGlzIHBhdGNoIG1h
a2VzIHNvbWUgdHdlYWtzIHRvCisgICAgICAgIGlucHV0IHZpZXcgY29udHJvbGxlciBoYW5kbGlu
ZyBpbiB0aGUgVUkgcHJvY2VzcyB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcywgYW5kIGFsc28gYWRk
cyBXZWJLaXRUZXN0UnVubmVyIHN1cHBvcnQKKyAgICAgICAgZm9yIHNpbXVsYXRpbmcgaW50ZXJh
Y3Rpb25zIHdpdGggc2VsZWN0IG1lbnVzIGluIGV4dHJhIHpvb20gbW9kZS4gU2VlIGNvbW1lbnRz
IGJlbG93IGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9leHRy
YXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgQWRk
IG5ldyBTUEkgZGVsZWdhdGUgaG9va3MgdG8gbm90aWZ5IHRoZSBVSSBkZWxlZ2F0ZSB3aGVuIHZp
ZXcgY29udHJvbGxlcnMgYXJlIHByZXNlbnRlZCBvciBkaXNtaXNzZWQgaW4gZXh0cmEKKyAgICAg
ICAgem9vbSBtb2RlLiBTZWUgLXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3Rl
ZE5vZGUgYW5kIC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCk6CisKKyAgICAgICAgU2VlIHRoZSBjb21tZW50IGJl
bG93IC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0
aW5nTm9kZTp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZp
dHlTdGF0ZTp1c2VyT2JqZWN0Ol0pOgorCisgICAgICAgIEluIGV4dHJhIHpvb20gbW9kZSwgd2hl
biBjaGFuZ2luZyBmb2N1cyBmcm9tIG9uZSBhc3Npc3RlZCBub2RlIHRvIGFub3RoZXIsIG9ubHkg
YWxsb3cgdGhlIHNlY29uZCBub2RlIHRvIGJlCisgICAgICAgIGFzc2lzdGVkIGlmIHRoZSBmb2N1
c2VkIGZvcm0gY29udHJvbCBvdmVybGF5IGlzIGJlaW5nIHNob3duLiBPdGhlcndpc2UsIChpLmUu
IHdoZW4gYSBmdWxsc2NyZWVuIGlucHV0IHZpZXcKKyAgICAgICAgY29udHJvbGxlciBpcyBiZWlu
ZyBwcmVzZW50ZWQpLCBkb24ndCBhbGxvdyBmb2N1cyB0byBzdGFydCBhbiBpbnB1dCBzZXNzaW9u
LgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgbWFrZSBhIG1pbm9yIHR3ZWFrIHRvIGFsbG93IHRo
ZSBwcmV2aW91cyBub2RlIHRvIGJsdXIsIGV2ZW4gaWYgd2UgYXJlIG5vdCBzaG93aW5nIHRoZSBr
ZXlib2FyZCBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuIFdpdGhvdXQgdGhp
cyBhZGp1c3RtZW50LCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgcGFnZSBoYXMgcHJvZ3JhbW1hdGlj
YWxseSBmb2N1c2VkCisgICAgICAgIGFub3RoZXIgZWxlbWVudCB3aGlsZSBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgd2UnbGwgc2hvdyB0aGUgb2xkIHZp
ZXcgY29udHJvbGxlciBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBwcmVzZW50Vmlld0NvbnRyb2xsZXJGb3JDdXJyZW50QXNz
aXN0ZWROb2RlXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlzbWlzc0FsbElucHV0Vmll
d0NvbnRyb2xsZXJzOl0pOgorCisgICAgICAgIEN1cnJlbnRseSwgd2hlbiBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgdGhlIHdlYiBwcm9jZXNzIGdldHMg
YmFja2dyb3VuZGVkLiBUaGlzCisgICAgICAgIHByZXZlbnRzIGV2ZW50IGhhbmRsZXJzIGZyb20g
ZXhlY3V0aW5nLCB3aGljaCBsZWFkcyB0byBzdHJhbmdlIGJlaGF2aW9ycyBpbiBtYW55IGNhc2Vz
IChmb3IgaW5zdGFuY2U6IGlmIHdlCisgICAgICAgIGhhdmUgYSBtdWx0aXBsZSBzZWxlY3QsIGFu
ZCB0aGUgImNoYW5nZSIgZXZlbnQgaGFuZGxlciBibHVycyB0aGUgc2VsZWN0LCB0aGUgdXNlciBt
YXkgY2hlY2sgb3IgdW5jaGVjayBtdWx0aXBsZQorICAgICAgICBpdGVtcywgYnV0IG9ubHkgdGhl
IGZpcnN0IGNoYW5nZSB3aWxsIGFjdHVhbGx5IHRha2UgZWZmZWN0KS4KKworICAgICAgICBUbyBm
aXggdGhpcywgd2UgbWFpbnRhaW4gYSBiYWNrZ3JvdW5kIGFjdGl2aXR5IHRva2VuIHdoaWxlIHBy
ZXNlbnRpbmcgYW4gaW5wdXQgdmlldyBjb250cm9sbGVyLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZEJlZ2luRWRpdGluZzpdKToKKworICAgICAg
ICBTdGFydCBoaWRpbmcgdGhlIGZvY3VzZWQgZm9ybSBvdmVybGF5IHdoZW4gcmUtcHJlc2VudGlu
ZyBhbiBpbnB1dCB2aWV3IGNvbnRyb2xsZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGJhaWwgZnJvbQor
ICAgICAgICBzaG93aW5nIGZ1bGxzY3JlZW4gaW5wdXQgVUkgZm9yIGFub3RoZXIgZm9jdXNlZCBl
bGVtZW50IGlmIGZvY3VzIHByb2dyYW1tYXRpY2FsbHkgY2hhbmdlcyB3aGlsZSB0aGUgY3VycmVu
dAorICAgICAgICBmdWxsc2NyZWVuIGlucHV0IHZpZXcgY29udHJvbGxlciBpcyBwcmVzZW50ZWQs
IGR1ZSB0byB0aGUgLWlzSGlkZGVuIGNoZWNrIGluIC1fc3RhcnRBc3Npc3RpbmdOb2RlOi4KKwor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6XSk6
CisKKyAgICAgICAgU2ltdWxhdGUgdGFwcGluZyBhIGdpdmVuIHJvdyBpbiBzZWxlY3QgbWVudSBV
SSBpbiBleHRyYSB6b29tIG1vZGUuCisKIDIwMTgtMDQtMTQgIENhcmxvcyBFZHVhcmRvIFJhbWFs
aG8gIDxjYWR1YmVudHplbkBnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBCdWlsZCBp
cyBicm9rZW4gYWZ0ZXIgcjIzMDY0MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZDEyYWEyMGRkMWY3ODU3
NGMzYzljNjkyODUxZTcwZTU3MjYwNTUwZi4uZjdiNWVmZDFhODk3YzQ5M2U5NTI5ZWUzMTY0NDMz
ZGUzOTRhMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNTMsNiArMTUzLDggQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIC0gKE5TSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
YXRhT3duZXJGb3JEcmFnU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2VuZGlmCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6
KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxF
KGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBy
ZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29u
dHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250
cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lkKV9jYW5jZWxJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJmNWZlNGE1MmQ5ZWM3OWExMjAyOTM4MjZkMTM1
OTkyNTg5MDQwMjAuLjlhMDFkNWI0YjM1NzFhODg3NjYxMmM3NWEzY2FkNzI5MDQ4NGEzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQwNyw0
ICsxNDA3LDI2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eSh1aW50NjRfdCBjYWxsYmFja0lkZW50CiAgICAgY2FsbGJhY2soaXNMb2Nh
bGx5UmVhY2hhYmxlID8gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZ
ZXMgOiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKIH0KIAor
I2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp0YWtl
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKQoreworICAgIGlmICht
X2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbkZvcm1Db250cm9scykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5G
b3JtQ29udHJvbHMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgaXQgaXMgcHJlc2VudGluZyBmdWxsc2NyZWVuIFVJ
IGZvciBmb3JtIGNvbnRyb2xzLiIpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVsZWFz
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCkKK3sKKyAgICBpZiAo
IW1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVl
bkZvcm1Db250cm9scyA9IG51bGxwdHI7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSBpdCBoYXMgZGlzbWlzc2VkIGZ1bGxzY3JlZW4gVUkgZm9yIGZvcm0gY29udHJvbHMuIik7Cit9
CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzY3NzBlYTg1NDhiZGZmNWM2MjlmNDNkNjNkMDMy
YTE3MDE1YjVhZC4uNjA3YjliMmFlNGFkZDI0NjY1MDFiMjE4ODZjMzRjOTExYWZkMGJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMiw2ICsyMTIs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZFdlYlBhZ2VQcm94eShXZWJQYWdlUHJveHkm
KTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95ZWQoU3VzcGVuZGVkUGFnZVByb3h5
Jik7CiAKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIHZvaWQgdGFrZUJhY2tncm91
bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CisgICAgdm9pZCByZWxlYXNlQmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKTsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwpAQCAtMzQwLDYg
KzM0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
KT4+IG1fbG9jYWxQb3J0QWN0aXZpdHlDb21wbGV0aW9uSGFuZGxlcnM7CiAKICAgICBib29sIG1f
aGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUo
RVhUUkFfWk9PTV9NT0RFKQorICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuIG1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xz
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IGExZGI5OTk2ZGU0YThjOTI1YmI0NzFhNmI5NDhmNWVkYmNhNmU3NWUuLjY0ODRjYjMxNzE4MTQz
MDVkZTc5OTcyNjZkMGMyMTM3ZTNlZGI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDAyNiwxOCAr
NDAyNiwyNiBAQCAtICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbgogICAgIGlmIChbaW5wdXREZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmZvY3VzU2hvdWxkU3RhcnRJ
bnB1dFNlc3Npb246KV0pCiAgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9IFtpbnB1dERlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246Zm9jdXNl
ZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsKLSAgICAgICAgLy8gVGhlIGRlZmF1bHQg
YmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVy
YWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KLSAgICAgICAgc2hvdWxk
U2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX2lzQ2hhbmdpbmdGb2N1cyB8fCBj
aGFuZ2luZ0FjdGl2aXR5U3RhdGU7Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAg
ICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmlzUGVy
Zm9ybWluZ0Ryb3AoKTsKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gYWxs
b3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nLgorICAgICAgICAv
LyBXZSBhbHNvIGFsbG93IG5vZGUgYXNzaXN0YW5jZSBpZiB0aGUga2V5Ym9hcmQgYWxyZWFkeSBp
cyBzaG93aW5nLCB1bmxlc3Mgd2UncmUgaW4gZXh0cmEgem9vbSBtb2RlLgorICAgICAgICBzaG91
bGRTaG93S2V5Ym9hcmQgPSB1c2VySXNJbnRlcmFjdGluZworI2lmIEVOQUJMRShFWFRSQV9aT09N
X01PREUpCisgICAgICAgICAgICB8fCAoX2lzQ2hhbmdpbmdGb2N1cyAmJiAhW19mb2N1c2VkRm9y
bUNvbnRyb2xWaWV3IGlzSGlkZGVuXSkKKyNlbHNlCisgICAgICAgICAgICB8fCBfaXNDaGFuZ2lu
Z0ZvY3VzCiAjZW5kaWYKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgICAgICAgICAgfHwg
X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdEcm9wKCkKKyNlbmRpZgorICAg
ICAgICAgICAgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwogICAgIH0KLSAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGJsdXJQcmV2aW91c05v
ZGUpCiAgICAgICAgIFtzZWxmIF9zdG9wQXNzaXN0aW5nTm9kZV07CiAKKyAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFpc0Fzc2lzdGFibGVJ
bnB1dFR5cGUoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTQyMzEsNiArNDIzOSwxNiBAQCAtICh2b2lkKXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJl
bnRBc3Npc3RlZE5vZGUKICAgICAgICAgW19pbnB1dE5hdmlnYXRpb25WaWV3Q29udHJvbGxlckZv
ckZ1bGxTY3JlZW5JbnB1dHMgcHVzaFZpZXdDb250cm9sbGVyOl9wcmVzZW50ZWRGdWxsU2NyZWVu
SW5wdXRWaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X3ByZXNl
bnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21w
bGV0aW9uOm5pbF07CisKKyAgICAvLyBQcmVzZW50aW5nIGEgZnVsbHNjcmVlbiBpbnB1dCB2aWV3
IGNvbnRyb2xsZXIgZnVsbHkgb2JzY3VyZXMgdGhlIHdlYiB2aWV3LiBXaXRob3V0IHRha2luZyB0
aGlzIHRva2VuLCB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyB3aWxsIGdldCBiYWNrZ3JvdW5kZWQu
CisgICAgX3BhZ2UtPnByb2Nlc3MoKS50YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxs
c2NyZWVuSW5wdXQoKTsKKworICAgIFtwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIudHJhbnNpdGlv
bkNvb3JkaW5hdG9yIGFuaW1hdGVBbG9uZ3NpZGVUcmFuc2l0aW9uOm5pbCBjb21wbGV0aW9uOlt3
ZWFrV2ViVmlldyA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oX3dlYlZpZXcpLCBjb250cm9sbGVy
ID0gX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyXSAoaWQgPFVJVmlld0Nv
bnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0
cm9uZ1dlYlZpZXcgPSB3ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+KFtzdHJvbmdXZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkUHJlc2VudEZvY3VzZWRF
bGVtZW50Vmlld0NvbnRyb2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpzdHJvbmdXZWJWaWV3LmdldCgpIGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOmNvbnRyb2xsZXIuZ2V0KCldOworICAgIH1dOwogfQogCiAtICh2b2lkKWRpc21pc3NBbGxJ
bnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZApAQCAtNDIzOCwxNiArNDI1NiwyOCBA
QCAtICh2b2lkKWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZAog
ICAgIGF1dG8gbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBXVEZNb3ZlKF9pbnB1dE5hdmlnYXRpb25W
aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5JbnB1dHMpOwogICAgIGF1dG8gcHJlc2VudGVkQ29u
dHJvbGxlciA9IFdURk1vdmUoX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVy
KTsKIAorICAgIGlmICghcHJlc2VudGVkQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKFtuYXZpZ2F0aW9uQ29udHJvbGxlciB2aWV3Q29udHJvbGxlcnNdLmxhc3RPYmplY3Qg
PT0gcHJlc2VudGVkQ29udHJvbGxlci5nZXQoKSkKICAgICAgICAgW25hdmlnYXRpb25Db250cm9s
bGVyIHBvcFZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRlZENvbnRyb2xsZXIgZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5p
bWF0ZWQgY29tcGxldGlvbjpuaWxdOwogCisgICAgW1twcmVzZW50ZWRDb250cm9sbGVyIHRyYW5z
aXRpb25Db29yZGluYXRvcl0gYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246bmlsIGNvbXBsZXRp
b246W3dlYWtXZWJWaWV3ID0gV2Vha09iakNQdHI8V0tXZWJWaWV3Pihfd2ViVmlldyksIGNvbnRy
b2xsZXIgPSBwcmVzZW50ZWRDb250cm9sbGVyXSAoaWQgPFVJVmlld0NvbnRyb2xsZXJUcmFuc2l0
aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0cm9uZ1dlYlZpZXcgPSB3
ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtzdHJvbmdXZWJW
aWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRy
b2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzdHJvbmdXZWJWaWV3
LmdldCgpIGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOmNvbnRyb2xsZXIu
Z2V0KCldOworICAgIH1dOworCiAgICAgaWYgKF9zaG91bGRSZXN0b3JlRmlyc3RSZXNwb25kZXJT
dGF0dXNBZnRlckxvc2luZ0ZvY3VzKSB7CiAgICAgICAgIF9zaG91bGRSZXN0b3JlRmlyc3RSZXNw
b25kZXJTdGF0dXNBZnRlckxvc2luZ0ZvY3VzID0gTk87CiAgICAgICAgIGlmICghc2VsZi5pc0Zp
cnN0UmVzcG9uZGVyKQogICAgICAgICAgICAgW3NlbGYgYmVjb21lRmlyc3RSZXNwb25kZXJdOwog
ICAgIH0KKworICAgIF9wYWdlLT5wcm9jZXNzKCkucmVsZWFzZUJhY2tncm91bmRBY3Rpdml0eVRv
a2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CiB9CiAKIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9s
Vmlld0RpZFN1Ym1pdDooV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwpAQCAtNDI2NCw4
ICs0Mjk0LDEyIEBAIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZENhbmNlbDooV0tG
b2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwogLSAodm9pZClmb2N1c2VkRm9ybUNvbnRyb2xW
aWV3RGlkQmVnaW5FZGl0aW5nOihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgKil2aWV3CiB7CiAg
ICAgW3NlbGYgdXBkYXRlQ3VycmVudEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOlt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSAoYm9vbCBkaWRVcGRhdGUpIHsKLSAg
ICAgICAgaWYgKGRpZFVwZGF0ZSkKLSAgICAgICAgICAgIFt3ZWFrU2VsZiBwcmVzZW50Vmlld0Nv
bnRyb2xsZXJGb3JDdXJyZW50QXNzaXN0ZWROb2RlXTsKKyAgICAgICAgaWYgKCFkaWRVcGRhdGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1
cnJlbnRBc3Npc3RlZE5vZGVdOworICAgICAgICBbc3Ryb25nU2VsZi0+X2ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXcgaGlkZTpZRVNdOwogICAgIH1dOwogfQogCkBAIC01NDE2LDggKzU0NTAsMTMgQEAg
LSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0
aW9uCiAKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooTlNJbnRlZ2VyKXJv
d0luZGV4CiB7CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBpZiAoW19wcmVzZW50
ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlciBpc0tpbmRPZkNsYXNzOltXS1NlbGVjdE1l
bnVMaXN0Vmlld0NvbnRyb2xsZXIgY2xhc3NdXSkKKyAgICAgICAgWyhXS1NlbGVjdE1lbnVMaXN0
Vmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkRnVsbFNjcmVlbklucHV0Vmlld0NvbnRyb2xsZXIu
Z2V0KCkgc2VsZWN0SXRlbUF0SW5kZXg6cm93SW5kZXhdOworI2Vsc2UKICAgICBpZiAoW19pbnB1
dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtU2VsZWN0Q29udHJvbCBzZWxmXV0pCiAg
ICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVyYWwgc2VsZWN0Um93
OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0aW9uOk5PXTsKKyNlbmRpZgog
fQogCiAtIChOU1N0cmluZyAqKXNlbGVjdEZvcm1Qb3BvdmVyVGl0bGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYzQ4ZjVjY2ExODBkMzVhMWJi
MjdjNmJkNmNmZmZmZWQyYmRhODEyLi5iZmU2ZDBkY2UwMjIwYTg2NDQ2ZDFkNjdhNzliMGM0ZjUw
YmIzZDIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gUHJvZ3JhbW1hdGljYWxs
eSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMgaXMgYSBj
b25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQ0MDY0Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJp
bmcgdG8gc3VwcG9ydCBpbnZva2luZyBgZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2tgIGFuZCBgZGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2tgIHdoZW4gKHJlc3BlY3RpdmVseSkKKyAgICAgICAgZGlzbWlz
c2luZyBvciBwcmVzZW50aW5nIGZ1bGxzY3JlZW4gaW5wdXQgdmlldyBjb250cm9sbGVycyBpbiBl
eHRyYSB6b29tIG1vZGUuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RS
dW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgaW5pdFdp
dGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfaW52b2tlU2hvd0tl
eWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IF9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XSk6CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2tleWJvYXJkRGlkU2hvdzpdKToKKyAgICAgICAgKC1bVGVz
dFJ1bm5lcldLV2ViVmlldyBfa2V5Ym9hcmREaWRIaWRlOl0pOgorICAgICAgICAoLVtUZXN0UnVu
bmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZERpc21p
c3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOl0pOgorCiAyMDE4LTA0LTEzICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFJlbG9hZGVkXSBVcGRh
dGUgY2xhc3MgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmluZGV4IGM2Y2Q0ZWRiOTU0OGEzNDNmMjNiYThi
Njg3NjQyNGIyN2ExOTA2NTguLjliZWI0MzhiOWYxZWJiM2M0YjQzOWFhMGRjZDAzZDRlN2RjODhk
NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIlRlc3RSdW5uZXJXS1dlYlZp
ZXcuaCIKIAogI2ltcG9ydCAiV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQ2LDEyICs0NywxMSBAQCBAZW5k
CiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1AaW50ZXJmYWNlIFRlc3RSdW5uZXJXS1dlYlZpZXcg
KCkgeworQGludGVyZmFjZSBUZXN0UnVubmVyV0tXZWJWaWV3ICgpIDxXS1VJRGVsZWdhdGVQcml2
YXRlPiB7CiAgICAgUmV0YWluUHRyPE5TTnVtYmVyICo+IG1fc3RhYmxlU3RhdGVPdmVycmlkZTsK
IH0KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF56b29tVG9TY2FsZUNvbXBs
ZXRpb25IYW5kbGVyKSh2b2lkKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChe
c2hvd0tleWJvYXJkQ29tcGxldGlvbkhhbmRsZXIpKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5yZXRyaWV2ZVNwZWFrU2VsZWN0aW9uQ29udGVudENvbXBsZXRpb25I
YW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlzU2hvd2luZ0tleWJv
YXJkOwogCkBAIC03NCw2ICs3NCw4IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihD
R1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAgICAgICAg
IE5TTm90aWZpY2F0aW9uQ2VudGVyKiBjZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl07CiAgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2tleWJvYXJkRGlkU2hvdzopIG5hbWU6VUlLZXlib2FyZERpZFNob3dOb3RpZmlj
YXRpb24gb2JqZWN0Om5pbF07CiAgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkSGlkZTopIG5hbWU6VUlLZXlib2FyZERpZEhpZGVO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisKKyAgICAgICAgc2VsZi5VSURlbGVnYXRlID0gc2Vs
ZjsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC05NCw3ICs5Niw2IEBAIC0gKHZvaWQp
ZGVhbGxvYwogICAgIHNlbGYucm90YXRpb25EaWRFbmRDYWxsYmFjayA9IG5pbDsKIAogICAgIHNl
bGYuem9vbVRvU2NhbGVDb21wbGV0aW9uSGFuZGxlciA9IG5pbDsKLSAgICBzZWxmLnNob3dLZXli
b2FyZENvbXBsZXRpb25IYW5kbGVyID0gbmlsOwogICAgIHNlbGYucmV0cmlldmVTcGVha1NlbGVj
dGlvbkNvbnRlbnRDb21wbGV0aW9uSGFuZGxlciA9IG5pbDsKIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKQEAgLTEzOSw3ICsxNDAsNyBAQCAtICh2b2lkKXpvb21Ub1NjYWxlOihkb3VibGUpc2NhbGUg
YW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaQogICAgIFtzZWxm
LnNjcm9sbFZpZXcgc2V0Wm9vbVNjYWxlOnNjYWxlIGFuaW1hdGVkOmFuaW1hdGVkXTsKIH0KIAot
LSAodm9pZClfa2V5Ym9hcmREaWRTaG93OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgor
LSAodm9pZClfaW52b2tlU2hvd0tleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeQogewogICAgIGlm
IChzZWxmLmlzU2hvd2luZ0tleWJvYXJkKQogICAgICAgICByZXR1cm47CkBAIC0xNDksNyArMTUw
LDcgQEAgLSAodm9pZClfa2V5Ym9hcmREaWRTaG93OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgogICAgICAgICBzZWxmLmRpZFNob3dLZXlib2FyZENhbGxiYWNrKCk7CiB9CiAKLS0gKHZv
aWQpX2tleWJvYXJkRGlkSGlkZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZv
aWQpX2ludm9rZUhpZGVLZXlib2FyZENhbGxiYWNrSWZOZWNlc3NhcnkKIHsKICAgICBpZiAoIXNl
bGYuaXNTaG93aW5nS2V5Ym9hcmQpCiAgICAgICAgIHJldHVybjsKQEAgLTE1OSw2ICsxNjAsMTYg
QEAgLSAodm9pZClfa2V5Ym9hcmREaWRIaWRlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgogICAgICAgICBzZWxmLmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKCk7CiB9CiAKKy0gKHZvaWQp
X2tleWJvYXJkRGlkU2hvdzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBb
c2VsZiBfaW52b2tlU2hvd0tleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV07Cit9CisKKy0gKHZv
aWQpX2tleWJvYXJkRGlkSGlkZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAg
ICBbc2VsZiBfaW52b2tlSGlkZUtleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV07Cit9CisKIC0g
KHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpblpvb21pbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcgd2l0aFZpZXc6KFVJVmlldyAqKXZpZXcKIHsKICAgICBbc3VwZXIgc2Nyb2xsVmlld1dpbGxC
ZWdpblpvb21pbmc6c2Nyb2xsVmlldyB3aXRoVmlldzp2aWV3XTsKQEAgLTIzMSw3ICsyNDIsMjEg
QEAgLSAoVUlFZGdlSW5zZXRzKV9zYWZlQXJlYUluc2V0c0ZvckZyYW1lOihDR1JlY3QpZnJhbWUg
aW5TdXBlcnZpZXc6KFVJVmlldyAqKXZpZXcKICAgICByZXR1cm4gX292ZXJyaWRlU2FmZUFyZWFJ
bnNldHM7CiB9CiAKLSNlbmRpZgorI3ByYWdtYSBtYXJrIC0gV0tVSURlbGVnYXRlUHJpdmF0ZQor
CisvLyBJbiBleHRyYSB6b29tIG1vZGUsIGZ1bGxzY3JlZW4gZm9ybSBjb250cm9sIFVJIHRha2Vz
IG9uIHRoZSBzYW1lIHJvbGUgYXMga2V5Ym9hcmRzIGFuZCBpbnB1dCB2aWV3IGNvbnRyb2xsZXJz
CisvLyBpbiBVSUtpdC4gQXMgc3VjaCwgd2UgYWxsb3cga2V5Ym9hcmQgcHJlc2VudGF0aW9uIGFu
ZCBkaXNtaXNzYWwgY2FsbGJhY2tzIHRvIHdvcmsgaW4gZXh0cmEgem9vbSBtb2RlIGFzIHdlbGwu
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2Vk
RWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlcgorewor
ICAgIFtzZWxmIF9pbnZva2VTaG93S2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XTsKK30KKwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzRm9jdXNlZEVs
ZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXIKK3sKKyAg
ICBbc2VsZiBfaW52b2tlSGlkZUtleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV07Cit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM4N2Q4NjkyNWMyMTY4Yjcy
ZjRhOWFmMWM2YzNlYjJkOGQzMWY5YzcuLmE2MmI5MGI4NTU3NTk0YjFlYWMxZTVjMGFhN2M1MzFm
YjhlZWViMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOC0wNC0xNSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBQ
cm9ncmFtbWF0aWNhbGx5IGNoYW5naW5nIGZvY3VzIHdoZW4gYW4gZWxlbWVudCBhbHJlYWR5IGhh
cyBmb2N1cyBpcyBhIGNvbmZ1c2luZyBleHBlcmllbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ2MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzM5NDQwNjQyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byBleGVyY2lzZSB0aGUgZm9sbG93aW5nIHNlcXVl
bmNlIG9mIGV2ZW50cyBpbiBleHRyYSB6b29tIG1vZGU6CisKKyAgICAgICAgMS4gRm9jdXMgc2Vs
ZWN0IGVsZW1lbnQgIzEuCisgICAgICAgIDIuIENob29zZSBhbiB1bnNlbGVjdGVkIG9wdGlvbi4K
KyAgICAgICAgMy4gUHJvZ3JhbW1hdGljYWxseSBmb2N1cyBzZWxlY3QgZWxlbWVudCAjMiBpbiB0
aGUgImNoYW5nZSIgZXZlbnQgaGFuZGxlci4KKyAgICAgICAgNC4gQ2hvb3NlIGFuIHVuc2VsZWN0
ZWQgb3B0aW9uLgorICAgICAgICA1LiBQcm9ncmFtbWF0aWNhbGx5IGJsdXIgc2VsZWN0IGVsZW1l
bnQgIzIgaW4gdGhlICJjaGFuZ2UiIGV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorCisgICAgICAgIFNraXAgbGF5b3V0IHRlc3RzIGluIGZhc3QvZXZlbnRzL2V4
dHJhem9vbS8gaW4gT3BlblNvdXJjZS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2V4dHJhem9v
bS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5n
ZS1ldmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgor
ICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZS5yZXR1cm4ubmV3
LlByb21pc2UpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlk
ZSk6CisKIDIwMTgtMDQtMTMgIENhcmxvcyBSYW1hbGhvICA8Y2FkdWJlbnR6ZW5AZ21haWwuY29t
PgogCiAgICAgICAgIFtHVEtdW1dheWxhbmRdIFVuZmxhZyB0ZXN0LWNhc2UgZmFzdC9jYW52YXMv
Y2FudmFzLWNyZWF0ZVBhdHRlcm4tdmlkZW8tbW9kaWZ5Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGQ5ZWZlMTc1MGFjZjc0MTlmOWU4OWQ3MzZjZTUwZGY1MTUzZGMzNWYuLmZiNGE3NTlhMjJl
YjAxNTkzYWUyMjkwM2JkNDE0ZGRjM2E1MGU5ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjUs
NiArMjUsNyBAQCBmYXN0L2Zvcm1zL2lvcyBbIFNraXAgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBT
a2lwIF0KIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8gWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2lv
cyBbIFNraXAgXQorZmFzdC9ldmVudHMvZXh0cmF6b29tIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy90
b3VjaC9pb3MgWyBTa2lwIF0KIGZhc3QvaGlzdG9yeS9pb3MgWyBTa2lwIF0KIGZhc3Qvc2Nyb2xs
aW5nL2lvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXh0
cmF6b29tL2NoYW5nZS1mb2N1cy1kdXJpbmctY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5n
ZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI3NTAwOWYwOWQwYTgzYTkyMjBjMzYy
NDA3ZmUyNjc1NDdjYWM1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw5IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworQ2hvb3Npbmcgc2Vjb25kIG9wdGlvbiBpbiB0b3Agc2VsZWN0Li4uCitP
cHRpb24gdHdvIHNob3VsZCBiZSBzZWxlY3RlZDogdHJ1ZQorQ2hvb3Npbmcgc2Vjb25kIG9wdGlv
biBpbiBib3R0b20gc2VsZWN0Li4uCitPcHRpb24gZm91ciBzaG91bGQgYmUgc2VsZWN0ZWQ6IHRy
dWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXh0cmF6b29tL2NoYW5n
ZS1mb2N1cy1kdXJpbmctY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zOTJkZGQ3ZmNiMjY2YmJiNDkxMTY2MjI2MGJhYjJiNjAyMjZmM2Q4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZXh0cmF6b29tL2NoYW5nZS1mb2N1cy1k
dXJpbmctY2hhbmdlLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+
Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgiPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5LCBodG1sIHsKKyAg
ICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
ICB9CisgICAgICAgIHNlbGVjdCB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAg
ICAgIGhlaWdodDogODBweDsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICB9
CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgLy8g
Rmlyc3QsIHRhcCBvbiB0aGUgdG9wIHNlbGVjdCBhbmQgY2hvb3NlIHRoZSBzZWNvbmQgb3B0aW9u
LiBDaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdCBjYXVzZXMgdGhlCisgICAgICAgICAg
ICAvLyBib3R0b20gc2VsZWN0IHRvIGJlIGZvY3VzZWQuCisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5hY3RpdmF0ZUFuZFdhaXRGb3JJbnB1dFNlc3Npb25BdCg1MCwgNDApOworICAgICAgICAg
ICAgb3V0cHV0LmlubmVySFRNTCArPSAiQ2hvb3Npbmcgc2Vjb25kIG9wdGlvbiBpbiB0b3Agc2Vs
ZWN0Li4uPGJyPiI7CisgICAgICAgICAgICBVSUhlbHBlci5zZWxlY3RGb3JtQWNjZXNzb3J5UGlj
a2VyUm93KDEpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9I
aWRlKCk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9IGBPcHRpb24gdHdvIHNob3Vs
ZCBiZSBzZWxlY3RlZDogJHt0d28uc2VsZWN0ZWR9PGJyPmA7CisKKyAgICAgICAgICAgIC8vIE5v
dyB0YXAgb24gdGhlIGJvdHRvbSBzZWxlY3QgYW5kIGNob29zZSB0aGUgc2Vjb25kIG9wdGlvbi4g
Q2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoaXMgc2VsZWN0IGNhdXNlcyB0aGUKKyAgICAgICAgICAg
IC8vIHNlbGVjdCB0byBibHVyLCBkaXNtaXNzaW5nIHRoZSBpbnB1dCB2aWV3LgorICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uQXQoNTAsIDEy
MCk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9ICJDaG9vc2luZyBzZWNvbmQgb3B0
aW9uIGluIGJvdHRvbSBzZWxlY3QuLi48YnI+IjsKKyAgICAgICAgICAgIFVJSGVscGVyLnNlbGVj
dEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3coMSk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53
YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICAgICAgICAgIG91dHB1dC5pbm5lckhUTUwgKz0g
YE9wdGlvbiBmb3VyIHNob3VsZCBiZSBzZWxlY3RlZDogJHtmb3VyLnNlbGVjdGVkfTxicj5gOwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzZWxlY3QgaWQ9InRvcCIgb25jaGFu
Z2U9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3R0b20nKS5mb2N1cygpIj4KKyAgICA8b3B0
aW9uIHNlbGVjdGVkPk9uZTwvb3B0aW9uPgorICAgIDxvcHRpb24gaWQ9InR3byI+VHdvPC9vcHRp
b24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9ImJvdHRvbSIgb25jaGFuZ2U9InRoaXMuYmx1cigp
Ij4KKyAgICA8b3B0aW9uIHNlbGVjdGVkPlRocmVlPC9vcHRpb24+CisgICAgPG9wdGlvbiBpZD0i
Zm91ciI+Rm91cjwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMjJhZGFl
YmJkY2EyYjM3MzgzZjE3NTlkNTQ5NGFiMDAzYmI2YTU0ZS4uMDk5ZGY4MzEwYzBmOThhZmJmMWU4
YWNhMmRlZTk0YzljMjFjNWE2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0x
MDAsNiArMTAwLDE2IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAg
ICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIHdhaXRGb3JLZXlib2FyZFRvSGlkZSgpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayA9
ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAg
fSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0aWMgZ2V0VUlD
YXJldFJlY3QoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlz
LmlzSU9TKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337997</attachid>
            <date>2018-04-16 07:34:15 -0700</date>
            <delta_ts>2018-04-17 20:01:46 -0700</delta_ts>
            <desc>Tweak layout test</desc>
            <filename>bug-184635-20180416073415.patch</filename>
            <type>text/plain</type>
            <size>24619</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4ZDBhYTZlZDg0Y2Y2NTQw
OTU5ZjUwZGE1MTk0MjRlNjczY2E3MDMuLmRlYTY5NWYxY2ZkZmQ2NGJmMTBiMDFiZDI4MWRiNTBh
NDFjOGNjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9k
ZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFk
eSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDdXJyZW50bHkgb24gaU9TLCB3ZSBhbGxvdyBlbGVtZW50IGZvY3VzIHRvIHByZXNl
bnQgVUkgaWYgdGhlIGtleWJvYXJkIGlzIGFscmVhZHkgc2hvd24uIEluIGV4dHJhIHpvb20gbW9k
ZSwKKyAgICAgICAgdGhpcyB3b3VsZCBsZWFkIHRvIGEgY29uZnVzaW5nIGV4cGVyaWVuY2Ugd2hl
biB0aGUgZm9jdXMgZm9ybSBjb250cm9sIG92ZXJsYXkgaXMgZGlzYWJsZWQsIHNpbmNlIGZ1bGxz
Y3JlZW4KKyAgICAgICAgaW5wdXQgdmlldyBjb250cm9sbGVycyBhcmUgc3dhcHBlZCBvdXQgZnJv
bSB1bmRlcm5lYXRoIHRoZSB1c2VyLiBDdXJyZW50bHksIHRoaXMgYWxzbyBwdXRzIHRoZSBVSSBw
cm9jZXNzIGludG8gYQorICAgICAgICBiYWQgc3RhdGUgd2hlcmUgdGhlIGZvY3VzZWQgZm9ybSBj
b250cm9sIG92ZXJsYXkgaXMgYWN0aXZlLCBidXQgc3RpbGwgaGlkZGVuLiBUaGlzIHBhdGNoIG1h
a2VzIHNvbWUgdHdlYWtzIHRvCisgICAgICAgIGlucHV0IHZpZXcgY29udHJvbGxlciBoYW5kbGlu
ZyBpbiB0aGUgVUkgcHJvY2VzcyB0byBhZGRyZXNzIHRoZXNlIGlzc3VlcywgYW5kIGFsc28gYWRk
cyBXZWJLaXRUZXN0UnVubmVyIHN1cHBvcnQKKyAgICAgICAgZm9yIHNpbXVsYXRpbmcgaW50ZXJh
Y3Rpb25zIHdpdGggc2VsZWN0IG1lbnVzIGluIGV4dHJhIHpvb20gbW9kZS4gU2VlIGNvbW1lbnRz
IGJlbG93IGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICBUZXN0OiBmYXN0L2V2ZW50cy9leHRy
YXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisKKyAgICAgICAgQWRk
IG5ldyBTUEkgZGVsZWdhdGUgaG9va3MgdG8gbm90aWZ5IHRoZSBVSSBkZWxlZ2F0ZSB3aGVuIHZp
ZXcgY29udHJvbGxlcnMgYXJlIHByZXNlbnRlZCBvciBkaXNtaXNzZWQgaW4gZXh0cmEKKyAgICAg
ICAgem9vbSBtb2RlLiBTZWUgLXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3Rl
ZE5vZGUgYW5kIC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VCYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCk6CisKKyAgICAgICAgU2VlIHRoZSBjb21tZW50IGJl
bG93IC1kaXNtaXNzQWxsSW5wdXRWaWV3Q29udHJvbGxlcnMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0
aW5nTm9kZTp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZp
dHlTdGF0ZTp1c2VyT2JqZWN0Ol0pOgorCisgICAgICAgIEluIGV4dHJhIHpvb20gbW9kZSwgd2hl
biBjaGFuZ2luZyBmb2N1cyBmcm9tIG9uZSBhc3Npc3RlZCBub2RlIHRvIGFub3RoZXIsIG9ubHkg
YWxsb3cgdGhlIHNlY29uZCBub2RlIHRvIGJlCisgICAgICAgIGFzc2lzdGVkIGlmIHRoZSBmb2N1
c2VkIGZvcm0gY29udHJvbCBvdmVybGF5IGlzIGJlaW5nIHNob3duLiBPdGhlcndpc2UsIChpLmUu
IHdoZW4gYSBmdWxsc2NyZWVuIGlucHV0IHZpZXcKKyAgICAgICAgY29udHJvbGxlciBpcyBiZWlu
ZyBwcmVzZW50ZWQpLCBkb24ndCBhbGxvdyBmb2N1cyB0byBzdGFydCBhbiBpbnB1dCBzZXNzaW9u
LgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgbWFrZSBhIG1pbm9yIHR3ZWFrIHRvIGFsbG93IHRo
ZSBwcmV2aW91cyBub2RlIHRvIGJsdXIsIGV2ZW4gaWYgd2UgYXJlIG5vdCBzaG93aW5nIHRoZSBr
ZXlib2FyZCBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuIFdpdGhvdXQgdGhp
cyBhZGp1c3RtZW50LCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgcGFnZSBoYXMgcHJvZ3JhbW1hdGlj
YWxseSBmb2N1c2VkCisgICAgICAgIGFub3RoZXIgZWxlbWVudCB3aGlsZSBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgd2UnbGwgc2hvdyB0aGUgb2xkIHZp
ZXcgY29udHJvbGxlciBmb3IKKyAgICAgICAgdGhlIG5ldyBmb2N1c2VkIGVsZW1lbnQuCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBwcmVzZW50Vmlld0NvbnRyb2xsZXJGb3JDdXJyZW50QXNz
aXN0ZWROb2RlXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlzbWlzc0FsbElucHV0Vmll
d0NvbnRyb2xsZXJzOl0pOgorCisgICAgICAgIEN1cnJlbnRseSwgd2hlbiBhIGZ1bGxzY3JlZW4g
aW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgdGhlIHdlYiBwcm9jZXNzIGdldHMg
YmFja2dyb3VuZGVkLiBUaGlzCisgICAgICAgIHByZXZlbnRzIGV2ZW50IGhhbmRsZXJzIGZyb20g
ZXhlY3V0aW5nLCB3aGljaCBsZWFkcyB0byBzdHJhbmdlIGJlaGF2aW9ycyBpbiBtYW55IGNhc2Vz
IChmb3IgaW5zdGFuY2U6IGlmIHdlCisgICAgICAgIGhhdmUgYSBtdWx0aXBsZSBzZWxlY3QsIGFu
ZCB0aGUgImNoYW5nZSIgZXZlbnQgaGFuZGxlciBibHVycyB0aGUgc2VsZWN0LCB0aGUgdXNlciBt
YXkgY2hlY2sgb3IgdW5jaGVjayBtdWx0aXBsZQorICAgICAgICBpdGVtcywgYnV0IG9ubHkgdGhl
IGZpcnN0IGNoYW5nZSB3aWxsIGFjdHVhbGx5IHRha2UgZWZmZWN0KS4KKworICAgICAgICBUbyBm
aXggdGhpcywgd2UgbWFpbnRhaW4gYSBiYWNrZ3JvdW5kIGFjdGl2aXR5IHRva2VuIHdoaWxlIHBy
ZXNlbnRpbmcgYW4gaW5wdXQgdmlldyBjb250cm9sbGVyLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZEJlZ2luRWRpdGluZzpdKToKKworICAgICAg
ICBTdGFydCBoaWRpbmcgdGhlIGZvY3VzZWQgZm9ybSBvdmVybGF5IHdoZW4gcmUtcHJlc2VudGlu
ZyBhbiBpbnB1dCB2aWV3IGNvbnRyb2xsZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGJhaWwgZnJvbQor
ICAgICAgICBzaG93aW5nIGZ1bGxzY3JlZW4gaW5wdXQgVUkgZm9yIGFub3RoZXIgZm9jdXNlZCBl
bGVtZW50IGlmIGZvY3VzIHByb2dyYW1tYXRpY2FsbHkgY2hhbmdlcyB3aGlsZSB0aGUgY3VycmVu
dAorICAgICAgICBmdWxsc2NyZWVuIGlucHV0IHZpZXcgY29udHJvbGxlciBpcyBwcmVzZW50ZWQs
IGR1ZSB0byB0aGUgLWlzSGlkZGVuIGNoZWNrIGluIC1fc3RhcnRBc3Npc3RpbmdOb2RlOi4KKwor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6XSk6
CisKKyAgICAgICAgU2ltdWxhdGUgdGFwcGluZyBhIGdpdmVuIHJvdyBpbiBzZWxlY3QgbWVudSBV
SSBpbiBleHRyYSB6b29tIG1vZGUuCisKIDIwMTgtMDQtMTQgIENhcmxvcyBFZHVhcmRvIFJhbWFs
aG8gIDxjYWR1YmVudHplbkBnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBCdWlsZCBp
cyBicm9rZW4gYWZ0ZXIgcjIzMDY0MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZDEyYWEyMGRkMWY3ODU3
NGMzYzljNjkyODUxZTcwZTU3MjYwNTUwZi4uZjdiNWVmZDFhODk3YzQ5M2U5NTI5ZWUzMTY0NDMz
ZGUzOTRhMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNTMsNiArMTUzLDggQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIC0gKE5TSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
YXRhT3duZXJGb3JEcmFnU2Vzc2lvbjooaWQgPFVJRHJhZ1Nlc3Npb24+KXNlc3Npb24gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2VuZGlmCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3VyZWRJbnNldHM6
KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZEluc2V0cyBXS19BUElfQVZBSUxBQkxF
KGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBy
ZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29u
dHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250
cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAjZWxzZSAvLyBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSk7CiAtICh2b2lkKV9jYW5jZWxJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJmNWZlNGE1MmQ5ZWM3OWExMjAyOTM4MjZkMTM1
OTkyNTg5MDQwMjAuLjlhMDFkNWI0YjM1NzFhODg3NjYxMmM3NWEzY2FkNzI5MDQ4NGEzZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQwNyw0
ICsxNDA3LDI2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDaGVja1Byb2Nlc3NMb2NhbFBv
cnRGb3JBY3Rpdml0eSh1aW50NjRfdCBjYWxsYmFja0lkZW50CiAgICAgY2FsbGJhY2soaXNMb2Nh
bGx5UmVhY2hhYmxlID8gTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5OjpZ
ZXMgOiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFzQWN0aXZpdHk6Ok5vKTsKIH0KIAor
I2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp0YWtl
QmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKQoreworICAgIGlmICht
X2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbkZvcm1Db250cm9scykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5G
b3JtQ29udHJvbHMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIGlzIHRha2luZyBhIGJh
Y2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgaXQgaXMgcHJlc2VudGluZyBmdWxsc2NyZWVuIFVJ
IGZvciBmb3JtIGNvbnRyb2xzLiIpOworfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVsZWFz
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCkKK3sKKyAgICBpZiAo
IW1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVl
bkZvcm1Db250cm9scyA9IG51bGxwdHI7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVz
ZSBpdCBoYXMgZGlzbWlzc2VkIGZ1bGxzY3JlZW4gVUkgZm9yIGZvcm0gY29udHJvbHMuIik7Cit9
CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzY3NzBlYTg1NDhiZGZmNWM2MjlmNDNkNjNkMDMy
YTE3MDE1YjVhZC4uNjA3YjliMmFlNGFkZDI0NjY1MDFiMjE4ODZjMzRjOTExYWZkMGJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMiw2ICsyMTIs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZFdlYlBhZ2VQcm94eShXZWJQYWdlUHJveHkm
KTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95ZWQoU3VzcGVuZGVkUGFnZVByb3h5
Jik7CiAKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIHZvaWQgdGFrZUJhY2tncm91
bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CisgICAgdm9pZCByZWxlYXNlQmFj
a2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKTsKKyNlbmRpZgorCiBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwpAQCAtMzQwLDYg
KzM0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6Okhhc0FjdGl2aXR5
KT4+IG1fbG9jYWxQb3J0QWN0aXZpdHlDb21wbGV0aW9uSGFuZGxlcnM7CiAKICAgICBib29sIG1f
aGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUo
RVhUUkFfWk9PTV9NT0RFKQorICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eVRva2VuIG1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuRm9ybUNvbnRyb2xz
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IGExZGI5OTk2ZGU0YThjOTI1YmI0NzFhNmI5NDhmNWVkYmNhNmU3NWUuLjY0ODRjYjMxNzE4MTQz
MDVkZTc5OTcyNjZkMGMyMTM3ZTNlZGI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDAyNiwxOCAr
NDAyNiwyNiBAQCAtICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbgogICAgIGlmIChbaW5wdXREZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmZvY3VzU2hvdWxkU3RhcnRJ
bnB1dFNlc3Npb246KV0pCiAgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9IFtpbnB1dERlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246Zm9jdXNl
ZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsKLSAgICAgICAgLy8gVGhlIGRlZmF1bHQg
YmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVy
YWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KLSAgICAgICAgc2hvdWxk
U2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX2lzQ2hhbmdpbmdGb2N1cyB8fCBj
aGFuZ2luZ0FjdGl2aXR5U3RhdGU7Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAg
ICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBfZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmlzUGVy
Zm9ybWluZ0Ryb3AoKTsKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gYWxs
b3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nLgorICAgICAgICAv
LyBXZSBhbHNvIGFsbG93IG5vZGUgYXNzaXN0YW5jZSBpZiB0aGUga2V5Ym9hcmQgYWxyZWFkeSBp
cyBzaG93aW5nLCB1bmxlc3Mgd2UncmUgaW4gZXh0cmEgem9vbSBtb2RlLgorICAgICAgICBzaG91
bGRTaG93S2V5Ym9hcmQgPSB1c2VySXNJbnRlcmFjdGluZworI2lmIEVOQUJMRShFWFRSQV9aT09N
X01PREUpCisgICAgICAgICAgICB8fCAoX2lzQ2hhbmdpbmdGb2N1cyAmJiAhW19mb2N1c2VkRm9y
bUNvbnRyb2xWaWV3IGlzSGlkZGVuXSkKKyNlbHNlCisgICAgICAgICAgICB8fCBfaXNDaGFuZ2lu
Z0ZvY3VzCiAjZW5kaWYKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgICAgICAgICAgfHwg
X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1pbmdEcm9wKCkKKyNlbmRpZgorICAg
ICAgICAgICAgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwogICAgIH0KLSAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGJsdXJQcmV2aW91c05v
ZGUpCiAgICAgICAgIFtzZWxmIF9zdG9wQXNzaXN0aW5nTm9kZV07CiAKKyAgICBpZiAoIXNob3Vs
ZFNob3dLZXlib2FyZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKCFpc0Fzc2lzdGFibGVJ
bnB1dFR5cGUoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTQyMzEsNiArNDIzOSwxNiBAQCAtICh2b2lkKXByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJl
bnRBc3Npc3RlZE5vZGUKICAgICAgICAgW19pbnB1dE5hdmlnYXRpb25WaWV3Q29udHJvbGxlckZv
ckZ1bGxTY3JlZW5JbnB1dHMgcHVzaFZpZXdDb250cm9sbGVyOl9wcmVzZW50ZWRGdWxsU2NyZWVu
SW5wdXRWaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X3ByZXNl
bnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21w
bGV0aW9uOm5pbF07CisKKyAgICAvLyBQcmVzZW50aW5nIGEgZnVsbHNjcmVlbiBpbnB1dCB2aWV3
IGNvbnRyb2xsZXIgZnVsbHkgb2JzY3VyZXMgdGhlIHdlYiB2aWV3LiBXaXRob3V0IHRha2luZyB0
aGlzIHRva2VuLCB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyB3aWxsIGdldCBiYWNrZ3JvdW5kZWQu
CisgICAgX3BhZ2UtPnByb2Nlc3MoKS50YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxs
c2NyZWVuSW5wdXQoKTsKKworICAgIFtwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIudHJhbnNpdGlv
bkNvb3JkaW5hdG9yIGFuaW1hdGVBbG9uZ3NpZGVUcmFuc2l0aW9uOm5pbCBjb21wbGV0aW9uOlt3
ZWFrV2ViVmlldyA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4oX3dlYlZpZXcpLCBjb250cm9sbGVy
ID0gX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyXSAoaWQgPFVJVmlld0Nv
bnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0
cm9uZ1dlYlZpZXcgPSB3ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0
ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+KFtzdHJvbmdXZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkUHJlc2VudEZvY3VzZWRF
bGVtZW50Vmlld0NvbnRyb2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpzdHJvbmdXZWJWaWV3LmdldCgpIGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOmNvbnRyb2xsZXIuZ2V0KCldOworICAgIH1dOwogfQogCiAtICh2b2lkKWRpc21pc3NBbGxJ
bnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZApAQCAtNDIzOCwxNiArNDI1NiwyOCBA
QCAtICh2b2lkKWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZAog
ICAgIGF1dG8gbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBXVEZNb3ZlKF9pbnB1dE5hdmlnYXRpb25W
aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5JbnB1dHMpOwogICAgIGF1dG8gcHJlc2VudGVkQ29u
dHJvbGxlciA9IFdURk1vdmUoX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVy
KTsKIAorICAgIGlmICghcHJlc2VudGVkQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKFtuYXZpZ2F0aW9uQ29udHJvbGxlciB2aWV3Q29udHJvbGxlcnNdLmxhc3RPYmplY3Qg
PT0gcHJlc2VudGVkQ29udHJvbGxlci5nZXQoKSkKICAgICAgICAgW25hdmlnYXRpb25Db250cm9s
bGVyIHBvcFZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIGVsc2UKICAgICAg
ICAgW3ByZXNlbnRlZENvbnRyb2xsZXIgZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5p
bWF0ZWQgY29tcGxldGlvbjpuaWxdOwogCisgICAgW1twcmVzZW50ZWRDb250cm9sbGVyIHRyYW5z
aXRpb25Db29yZGluYXRvcl0gYW5pbWF0ZUFsb25nc2lkZVRyYW5zaXRpb246bmlsIGNvbXBsZXRp
b246W3dlYWtXZWJWaWV3ID0gV2Vha09iakNQdHI8V0tXZWJWaWV3Pihfd2ViVmlldyksIGNvbnRy
b2xsZXIgPSBwcmVzZW50ZWRDb250cm9sbGVyXSAoaWQgPFVJVmlld0NvbnRyb2xsZXJUcmFuc2l0
aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBhdXRvIHN0cm9uZ1dlYlZpZXcgPSB3
ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVs
ZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtzdHJvbmdXZWJW
aWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRy
b2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzdHJvbmdXZWJWaWV3
LmdldCgpIGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOmNvbnRyb2xsZXIu
Z2V0KCldOworICAgIH1dOworCiAgICAgaWYgKF9zaG91bGRSZXN0b3JlRmlyc3RSZXNwb25kZXJT
dGF0dXNBZnRlckxvc2luZ0ZvY3VzKSB7CiAgICAgICAgIF9zaG91bGRSZXN0b3JlRmlyc3RSZXNw
b25kZXJTdGF0dXNBZnRlckxvc2luZ0ZvY3VzID0gTk87CiAgICAgICAgIGlmICghc2VsZi5pc0Zp
cnN0UmVzcG9uZGVyKQogICAgICAgICAgICAgW3NlbGYgYmVjb21lRmlyc3RSZXNwb25kZXJdOwog
ICAgIH0KKworICAgIF9wYWdlLT5wcm9jZXNzKCkucmVsZWFzZUJhY2tncm91bmRBY3Rpdml0eVRv
a2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CiB9CiAKIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9s
Vmlld0RpZFN1Ym1pdDooV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwpAQCAtNDI2NCw4
ICs0Mjk0LDEyIEBAIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZENhbmNlbDooV0tG
b2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwogLSAodm9pZClmb2N1c2VkRm9ybUNvbnRyb2xW
aWV3RGlkQmVnaW5FZGl0aW5nOihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgKil2aWV3CiB7CiAg
ICAgW3NlbGYgdXBkYXRlQ3VycmVudEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOlt3ZWFrU2VsZiA9
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSAoYm9vbCBkaWRVcGRhdGUpIHsKLSAg
ICAgICAgaWYgKGRpZFVwZGF0ZSkKLSAgICAgICAgICAgIFt3ZWFrU2VsZiBwcmVzZW50Vmlld0Nv
bnRyb2xsZXJGb3JDdXJyZW50QXNzaXN0ZWROb2RlXTsKKyAgICAgICAgaWYgKCFkaWRVcGRhdGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1
cnJlbnRBc3Npc3RlZE5vZGVdOworICAgICAgICBbc3Ryb25nU2VsZi0+X2ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXcgaGlkZTpZRVNdOwogICAgIH1dOwogfQogCkBAIC01NDE2LDggKzU0NTAsMTMgQEAg
LSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOihDR1BvaW50KWxvY2F0
aW9uCiAKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooTlNJbnRlZ2VyKXJv
d0luZGV4CiB7CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9ERSkKKyAgICBpZiAoW19wcmVzZW50
ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlciBpc0tpbmRPZkNsYXNzOltXS1NlbGVjdE1l
bnVMaXN0Vmlld0NvbnRyb2xsZXIgY2xhc3NdXSkKKyAgICAgICAgWyhXS1NlbGVjdE1lbnVMaXN0
Vmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkRnVsbFNjcmVlbklucHV0Vmlld0NvbnRyb2xsZXIu
Z2V0KCkgc2VsZWN0SXRlbUF0SW5kZXg6cm93SW5kZXhdOworI2Vsc2UKICAgICBpZiAoW19pbnB1
dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtU2VsZWN0Q29udHJvbCBzZWxmXV0pCiAg
ICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVyYWwgc2VsZWN0Um93
OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2VsZWN0aW9uOk5PXTsKKyNlbmRpZgog
fQogCiAtIChOU1N0cmluZyAqKXNlbGVjdEZvcm1Qb3BvdmVyVGl0bGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYzQ4ZjVjY2ExODBkMzVhMWJi
MjdjNmJkNmNmZmZmZWQyYmRhODEyLi5iZmU2ZDBkY2UwMjIwYTg2NDQ2ZDFkNjdhNzliMGM0ZjUw
YmIzZDIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gUHJvZ3JhbW1hdGljYWxs
eSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMgaXMgYSBj
b25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQ0MDY0Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGx1bWJp
bmcgdG8gc3VwcG9ydCBpbnZva2luZyBgZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2tgIGFuZCBgZGlk
U2hvd0tleWJvYXJkQ2FsbGJhY2tgIHdoZW4gKHJlc3BlY3RpdmVseSkKKyAgICAgICAgZGlzbWlz
c2luZyBvciBwcmVzZW50aW5nIGZ1bGxzY3JlZW4gaW5wdXQgdmlldyBjb250cm9sbGVycyBpbiBl
eHRyYSB6b29tIG1vZGUuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RS
dW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgaW5pdFdp
dGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfaW52b2tlU2hvd0tl
eWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IF9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XSk6CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2tleWJvYXJkRGlkU2hvdzpdKToKKyAgICAgICAgKC1bVGVz
dFJ1bm5lcldLV2ViVmlldyBfa2V5Ym9hcmREaWRIaWRlOl0pOgorICAgICAgICAoLVtUZXN0UnVu
bmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9s
bGVyOl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF93ZWJWaWV3OmRpZERpc21p
c3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOl0pOgorCiAyMDE4LTA0LTEzICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFJlbG9hZGVkXSBVcGRh
dGUgY2xhc3MgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmluZGV4IGM2Y2Q0ZWRiOTU0OGEzNDNmMjNiYThi
Njg3NjQyNGIyN2ExOTA2NTguLjdmZjdmZDVjZjEyNjBlYjkwMTM2M2M4YzRlZjlhOTQwM2I3YzM1
MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIlRlc3RSdW5uZXJXS1dlYlZp
ZXcuaCIKIAogI2ltcG9ydCAiV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQ2LDEyICs0NywxMSBAQCBAZW5k
CiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1AaW50ZXJmYWNlIFRlc3RSdW5uZXJXS1dlYlZpZXcg
KCkgeworQGludGVyZmFjZSBUZXN0UnVubmVyV0tXZWJWaWV3ICgpIDxXS1VJRGVsZWdhdGVQcml2
YXRlPiB7CiAgICAgUmV0YWluUHRyPE5TTnVtYmVyICo+IG1fc3RhYmxlU3RhdGVPdmVycmlkZTsK
IH0KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF56b29tVG9TY2FsZUNvbXBs
ZXRpb25IYW5kbGVyKSh2b2lkKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChe
c2hvd0tleWJvYXJkQ29tcGxldGlvbkhhbmRsZXIpKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5yZXRyaWV2ZVNwZWFrU2VsZWN0aW9uQ29udGVudENvbXBsZXRpb25I
YW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGlzU2hvd2luZ0tleWJv
YXJkOwogCkBAIC03Miw4ICs3MiwxMCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
Q0dSZWN0KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogewogICAg
IGlmIChzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSkgewogICAgICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciogY2VudGVyID0gW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwotICAgICAgICBbY2VudGVyIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZERpZFNob3c6KSBuYW1lOlVJ
S2V5Ym9hcmREaWRTaG93Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgICAgICBbY2VudGVy
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZERpZEhpZGU6KSBu
YW1lOlVJS2V5Ym9hcmREaWRIaWRlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgICAgICBb
Y2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9pbnZva2VTaG93S2V5
Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5KSBuYW1lOlVJS2V5Ym9hcmREaWRTaG93Tm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOworICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5KSBuYW1l
OlVJS2V5Ym9hcmREaWRIaWRlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworCisgICAgICAgIHNl
bGYuVUlEZWxlZ2F0ZSA9IHNlbGY7CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtOTQs
NyArOTYsNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBzZWxmLnJvdGF0aW9uRGlkRW5kQ2FsbGJh
Y2sgPSBuaWw7CiAKICAgICBzZWxmLnpvb21Ub1NjYWxlQ29tcGxldGlvbkhhbmRsZXIgPSBuaWw7
Ci0gICAgc2VsZi5zaG93S2V5Ym9hcmRDb21wbGV0aW9uSGFuZGxlciA9IG5pbDsKICAgICBzZWxm
LnJldHJpZXZlU3BlYWtTZWxlY3Rpb25Db250ZW50Q29tcGxldGlvbkhhbmRsZXIgPSBuaWw7CiAK
ICAgICBbc3VwZXIgZGVhbGxvY107CkBAIC0xMzksNyArMTQwLDcgQEAgLSAodm9pZCl6b29tVG9T
Y2FsZTooZG91YmxlKXNjYWxlIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkIGNvbXBsZXRpb25IYW5k
bGVyOih2b2kKICAgICBbc2VsZi5zY3JvbGxWaWV3IHNldFpvb21TY2FsZTpzY2FsZSBhbmltYXRl
ZDphbmltYXRlZF07CiB9CiAKLS0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KKy0gKHZvaWQpX2ludm9rZVNob3dLZXlib2FyZENhbGxiYWNrSWZO
ZWNlc3NhcnkKIHsKICAgICBpZiAoc2VsZi5pc1Nob3dpbmdLZXlib2FyZCkKICAgICAgICAgcmV0
dXJuOwpAQCAtMTQ5LDcgKzE1MCw3IEBAIC0gKHZvaWQpX2tleWJvYXJkRGlkU2hvdzooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICAgICAgc2VsZi5kaWRTaG93S2V5Ym9hcmRDYWxs
YmFjaygpOwogfQogCi0tICh2b2lkKV9rZXlib2FyZERpZEhpZGU6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCistICh2b2lkKV9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNz
YXJ5CiB7CiAgICAgaWYgKCFzZWxmLmlzU2hvd2luZ0tleWJvYXJkKQogICAgICAgICByZXR1cm47
CkBAIC0yMzEsNyArMjMyLDIxIEBAIC0gKFVJRWRnZUluc2V0cylfc2FmZUFyZWFJbnNldHNGb3JG
cmFtZTooQ0dSZWN0KWZyYW1lIGluU3VwZXJ2aWV3OihVSVZpZXcgKil2aWV3CiAgICAgcmV0dXJu
IF9vdmVycmlkZVNhZmVBcmVhSW5zZXRzOwogfQogCi0jZW5kaWYKKyNwcmFnbWEgbWFyayAtIFdL
VUlEZWxlZ2F0ZVByaXZhdGUKKworLy8gSW4gZXh0cmEgem9vbSBtb2RlLCBmdWxsc2NyZWVuIGZv
cm0gY29udHJvbCBVSSB0YWtlcyBvbiB0aGUgc2FtZSByb2xlIGFzIGtleWJvYXJkcyBhbmQgaW5w
dXQgdmlldyBjb250cm9sbGVycworLy8gaW4gVUlLaXQuIEFzIHN1Y2gsIHdlIGFsbG93IGtleWJv
YXJkIHByZXNlbnRhdGlvbiBhbmQgZGlzbWlzc2FsIGNhbGxiYWNrcyB0byB3b3JrIGluIGV4dHJh
IHpvb20gbW9kZSBhcyB3ZWxsLgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRQcmVzZW50Rm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxl
ciAqKWNvbnRyb2xsZXIKK3sKKyAgICBbc2VsZiBfaW52b2tlU2hvd0tleWJvYXJkQ2FsbGJhY2tJ
Zk5lY2Vzc2FyeV07Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIg
Kiljb250cm9sbGVyCit7CisgICAgW3NlbGYgX2ludm9rZUhpZGVLZXlib2FyZENhbGxiYWNrSWZO
ZWNlc3NhcnldOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzODdkODY5MjVjMjE2OGI3MmY0YTlhZjFjNmMzZWIyZDhkMzFmOWM3Li5hNjJiOTBiODU1NzU5
NGIxZWFjMWU1YzBhYTdjNTMxZmI4ZWVlYjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgt
MDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W0V4dHJhIHpvb20gbW9kZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFu
IGVsZW1lbnQgYWxyZWFkeSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgbGF5b3V0IHRlc3QgdG8gZXhlcmNpc2Ug
dGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBldmVudHMgaW4gZXh0cmEgem9vbSBtb2RlOgorCisg
ICAgICAgIDEuIEZvY3VzIHNlbGVjdCBlbGVtZW50ICMxLgorICAgICAgICAyLiBDaG9vc2UgYW4g
dW5zZWxlY3RlZCBvcHRpb24uCisgICAgICAgIDMuIFByb2dyYW1tYXRpY2FsbHkgZm9jdXMgc2Vs
ZWN0IGVsZW1lbnQgIzIgaW4gdGhlICJjaGFuZ2UiIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIDQu
IENob29zZSBhbiB1bnNlbGVjdGVkIG9wdGlvbi4KKyAgICAgICAgNS4gUHJvZ3JhbW1hdGljYWxs
eSBibHVyIHNlbGVjdCBlbGVtZW50ICMyIGluIHRoZSAiY2hhbmdlIiBldmVudCBoYW5kbGVyLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKworICAgICAgICBTa2lwIGxheW91dCB0ZXN0
cyBpbiBmYXN0L2V2ZW50cy9leHRyYXpvb20vIGluIE9wZW5Tb3VyY2UuCisKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdl
LWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yS2V5Ym9h
cmRUb0hpZGUucmV0dXJuLm5ldy5Qcm9taXNlKToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53
YWl0Rm9yS2V5Ym9hcmRUb0hpZGUpOgorCiAyMDE4LTA0LTEzICBDYXJsb3MgUmFtYWxobyAgPGNh
ZHViZW50emVuQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXVtXYXlsYW5kXSBVbmZsYWcgdGVz
dC1jYXNlIGZhc3QvY2FudmFzL2NhbnZhcy1jcmVhdGVQYXR0ZXJuLXZpZGVvLW1vZGlmeS5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBkOWVmZTE3NTBhY2Y3NDE5ZjllODlkNzM2Y2U1MGRmNTE1
M2RjMzVmLi5mYjRhNzU5YTIyZWIwMTU5M2FlMjI5MDNiZDQxNGRkYzNhNTBlOTgzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI1LDYgKzI1LDcgQEAgZmFzdC9mb3Jtcy9pb3MgWyBTa2lwIF0KIGZh
c3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvIFsgU2tp
cCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KK2Zhc3QvZXZlbnRzL2V4dHJhem9vbSBbIFNr
aXAgXQogZmFzdC9ldmVudHMvdG91Y2gvaW9zIFsgU2tpcCBdCiBmYXN0L2hpc3RvcnkvaW9zIFsg
U2tpcCBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdl
LWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNzUw
MDlmMDlkMGE4M2E5MjIwYzM2MjQwN2ZlMjY3NTQ3Y2FjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFu
Z2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKK0Nob29zaW5nIHNlY29uZCBvcHRpb24g
aW4gdG9wIHNlbGVjdC4uLgorT3B0aW9uIHR3byBzaG91bGQgYmUgc2VsZWN0ZWQ6IHRydWUKK0No
b29zaW5nIHNlY29uZCBvcHRpb24gaW4gYm90dG9tIHNlbGVjdC4uLgorT3B0aW9uIGZvdXIgc2hv
dWxkIGJlIHNlbGVjdGVkOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvZXh0cmF6b29tL2NoYW5nZS1mb2N1cy1kdXJpbmctY2hhbmdl
LWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGViODIwZmYyNDM5OTYzYzNhMDczNmJlZmYyZGIzNjE0
MGQ2MGRjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJh
em9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsNjAg
QEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxl
Vmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAg
ICAgYm9keSwgaHRtbCB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICB3aWR0
aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgfQorICAgICAgICBzZWxlY3QgeworICAgICAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7CisgICAgICAgICAgICBkaXNwbGF5
OiBibG9jazsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gc2VsZWN0T3B0aW9uQXRJ
bmRleEFuZFdhaXRGb3JLZXlib2FyZFRvSGlkZShpbmRleCkgeworICAgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRG
b3JLZXlib2FyZFRvSGlkZSgpLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICAgICAgVUlIZWxw
ZXIuc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhpbmRleCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
ICAgICAvLyBGaXJzdCwgdGFwIG9uIHRoZSB0b3Agc2VsZWN0IGFuZCBjaG9vc2UgdGhlIHNlY29u
ZCBvcHRpb24uIENoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGNhdXNlcyB0aGUKKyAg
ICAgICAgICAgIC8vIGJvdHRvbSBzZWxlY3QgdG8gYmUgZm9jdXNlZC4KKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmFjdGl2YXRlQW5kV2FpdEZvcklucHV0U2Vzc2lvbkF0KDUwLCA0MCk7Cisg
ICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9ICJDaG9vc2luZyBzZWNvbmQgb3B0aW9uIGlu
IHRvcCBzZWxlY3QuLi48YnI+IjsKKyAgICAgICAgICAgIGF3YWl0IHNlbGVjdE9wdGlvbkF0SW5k
ZXhBbmRXYWl0Rm9yS2V5Ym9hcmRUb0hpZGUoMSk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJI
VE1MICs9IGBPcHRpb24gdHdvIHNob3VsZCBiZSBzZWxlY3RlZDogJHt0d28uc2VsZWN0ZWR9PGJy
PmA7CisKKyAgICAgICAgICAgIC8vIE5vdyB0YXAgb24gdGhlIGJvdHRvbSBzZWxlY3QgYW5kIGNo
b29zZSB0aGUgc2Vjb25kIG9wdGlvbi4gQ2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoaXMgc2VsZWN0
IGNhdXNlcyB0aGUKKyAgICAgICAgICAgIC8vIHNlbGVjdCB0byBibHVyLCBkaXNtaXNzaW5nIHRo
ZSBpbnB1dCB2aWV3LgorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0
Rm9ySW5wdXRTZXNzaW9uQXQoNTAsIDEyMCk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1M
ICs9ICJDaG9vc2luZyBzZWNvbmQgb3B0aW9uIGluIGJvdHRvbSBzZWxlY3QuLi48YnI+IjsKKyAg
ICAgICAgICAgIGF3YWl0IHNlbGVjdE9wdGlvbkF0SW5kZXhBbmRXYWl0Rm9yS2V5Ym9hcmRUb0hp
ZGUoMSk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9IGBPcHRpb24gZm91ciBzaG91
bGQgYmUgc2VsZWN0ZWQ6ICR7Zm91ci5zZWxlY3RlZH08YnI+YDsKKworICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxzZWxlY3QgaWQ9InRvcCIgb25jaGFuZ2U9ImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdib3R0b20nKS5mb2N1cygpIj4KKyAgICA8b3B0aW9uIHNlbGVjdGVkPk9u
ZTwvb3B0aW9uPgorICAgIDxvcHRpb24gaWQ9InR3byI+VHdvPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9ImJvdHRvbSIgb25jaGFuZ2U9InRoaXMuYmx1cigpIj4KKyAgICA8b3B0aW9u
IHNlbGVjdGVkPlRocmVlPC9vcHRpb24+CisgICAgPG9wdGlvbiBpZD0iZm91ciI+Rm91cjwvb3B0
aW9uPgorPC9zZWxlY3Q+Cis8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMjJhZGFlYmJkY2EyYjM3MzgzZjE3
NTlkNTQ5NGFiMDAzYmI2YTU0ZS4uMDk5ZGY4MzEwYzBmOThhZmJmMWU4YWNhMmRlZTk0YzljMjFj
NWE2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMDAsNiArMTAwLDE2IEBA
IHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQog
CisgICAgc3RhdGljIHdhaXRGb3JLZXlib2FyZFRvSGlkZSgpCisgICAgeworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayA9ICgpID0+IHVpQ29udHJv
bGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUp
OworICAgICAgICB9KTsKKyAgICB9CisKICAgICBzdGF0aWMgZ2V0VUlDYXJldFJlY3QoKQogICAg
IHsKICAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlzLmlzSU9TKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338190</attachid>
            <date>2018-04-17 20:01:47 -0700</date>
            <delta_ts>2018-04-17 23:03:11 -0700</delta_ts>
            <desc>Rebase on master</desc>
            <filename>bug-184635-20180417200146.patch</filename>
            <type>text/plain</type>
            <size>24037</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyOTc4MWM2NWZhMDVhYmQy
N2RjZDdlYWEyOTViZjBhMjBmMDE4MjMuLjI5OGZlYTQ4ZTkzOWFkZmIyYTM2YmU0NzUxYmViY2M0
OGRmZDFmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9k
ZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxyZWFk
eSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAg
ICAgIEN1cnJlbnRseSBvbiBpT1MsIHdlIGFsbG93IGVsZW1lbnQgZm9jdXMgdG8gcHJlc2VudCBV
SSBpZiB0aGUga2V5Ym9hcmQgaXMgYWxyZWFkeSBzaG93bi4gSW4gZXh0cmEgem9vbSBtb2RlLAor
ICAgICAgICB0aGlzIHdvdWxkIGxlYWQgdG8gYSBjb25mdXNpbmcgZXhwZXJpZW5jZSB3aGVuIHRo
ZSBmb2N1cyBmb3JtIGNvbnRyb2wgb3ZlcmxheSBpcyBkaXNhYmxlZCwgc2luY2UgZnVsbHNjcmVl
bgorICAgICAgICBpbnB1dCB2aWV3IGNvbnRyb2xsZXJzIGFyZSBzd2FwcGVkIG91dCBmcm9tIHVu
ZGVybmVhdGggdGhlIHVzZXIuIEN1cnJlbnRseSwgdGhpcyBhbHNvIHB1dHMgdGhlIFVJIHByb2Nl
c3MgaW50byBhCisgICAgICAgIGJhZCBzdGF0ZSB3aGVyZSB0aGUgZm9jdXNlZCBmb3JtIGNvbnRy
b2wgb3ZlcmxheSBpcyBhY3RpdmUsIGJ1dCBzdGlsbCBoaWRkZW4uIFRoaXMgcGF0Y2ggbWFrZXMg
c29tZSB0d2Vha3MgdG8KKyAgICAgICAgaW5wdXQgdmlldyBjb250cm9sbGVyIGhhbmRsaW5nIGlu
IHRoZSBVSSBwcm9jZXNzIHRvIGFkZHJlc3MgdGhlc2UgaXNzdWVzLCBhbmQgYWxzbyBhZGRzIFdl
YktpdFRlc3RSdW5uZXIgc3VwcG9ydAorICAgICAgICBmb3Igc2ltdWxhdGluZyBpbnRlcmFjdGlv
bnMgd2l0aCBzZWxlY3QgbWVudXMgaW4gZXh0cmEgem9vbSBtb2RlLiBTZWUgY29tbWVudHMgYmVs
b3cgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2V4dHJhem9v
bS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1sCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICBBZGQgbmV3
IFNQSSBkZWxlZ2F0ZSBob29rcyB0byBub3RpZnkgdGhlIFVJIGRlbGVnYXRlIHdoZW4gdmlldyBj
b250cm9sbGVycyBhcmUgcHJlc2VudGVkIG9yIGRpc21pc3NlZCBpbiBleHRyYQorICAgICAgICB6
b29tIG1vZGUuIFNlZSAtcHJlc2VudFZpZXdDb250cm9sbGVyRm9yQ3VycmVudEFzc2lzdGVkTm9k
ZSBhbmQgLWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVycy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OnRha2VCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5JbnB1dCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVsZWFzZUJhY2tncm91bmRBY3Rpdml0eVRv
a2VuRm9yRnVsbHNjcmVlbklucHV0KToKKworICAgICAgICBTZWUgdGhlIGNvbW1lbnQgYmVsb3cg
LWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVycy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc3RhcnRBc3Npc3RpbmdO
b2RlOnVzZXJJc0ludGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0
YXRlOnVzZXJPYmplY3Q6XSk6CisKKyAgICAgICAgSW4gZXh0cmEgem9vbSBtb2RlLCB3aGVuIGNo
YW5naW5nIGZvY3VzIGZyb20gb25lIGFzc2lzdGVkIG5vZGUgdG8gYW5vdGhlciwgb25seSBhbGxv
dyB0aGUgc2Vjb25kIG5vZGUgdG8gYmUKKyAgICAgICAgYXNzaXN0ZWQgaWYgdGhlIGZvY3VzZWQg
Zm9ybSBjb250cm9sIG92ZXJsYXkgaXMgYmVpbmcgc2hvd24uIE90aGVyd2lzZSwgKGkuZS4gd2hl
biBhIGZ1bGxzY3JlZW4gaW5wdXQgdmlldworICAgICAgICBjb250cm9sbGVyIGlzIGJlaW5nIHBy
ZXNlbnRlZCksIGRvbid0IGFsbG93IGZvY3VzIHRvIHN0YXJ0IGFuIGlucHV0IHNlc3Npb24uCisK
KyAgICAgICAgQWRkaXRpb25hbGx5LCBtYWtlIGEgbWlub3IgdHdlYWsgdG8gYWxsb3cgdGhlIHBy
ZXZpb3VzIG5vZGUgdG8gYmx1ciwgZXZlbiBpZiB3ZSBhcmUgbm90IHNob3dpbmcgdGhlIGtleWJv
YXJkIGZvcgorICAgICAgICB0aGUgbmV3IGZvY3VzZWQgZWxlbWVudC4gV2l0aG91dCB0aGlzIGFk
anVzdG1lbnQsIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYWdlIGhhcyBwcm9ncmFtbWF0aWNhbGx5
IGZvY3VzZWQKKyAgICAgICAgYW5vdGhlciBlbGVtZW50IHdoaWxlIGEgZnVsbHNjcmVlbiBpbnB1
dCB2aWV3IGNvbnRyb2xsZXIgaXMgcHJlc2VudGVkLCB3ZSdsbCBzaG93IHRoZSBvbGQgdmlldyBj
b250cm9sbGVyIGZvcgorICAgICAgICB0aGUgbmV3IGZvY3VzZWQgZWxlbWVudC4KKworICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IHByZXNlbnRWaWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3Rl
ZE5vZGVdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaXNtaXNzQWxsSW5wdXRWaWV3Q29u
dHJvbGxlcnM6XSk6CisKKyAgICAgICAgQ3VycmVudGx5LCB3aGVuIGEgZnVsbHNjcmVlbiBpbnB1
dCB2aWV3IGNvbnRyb2xsZXIgaXMgcHJlc2VudGVkLCB0aGUgd2ViIHByb2Nlc3MgZ2V0cyBiYWNr
Z3JvdW5kZWQuIFRoaXMKKyAgICAgICAgcHJldmVudHMgZXZlbnQgaGFuZGxlcnMgZnJvbSBleGVj
dXRpbmcsIHdoaWNoIGxlYWRzIHRvIHN0cmFuZ2UgYmVoYXZpb3JzIGluIG1hbnkgY2FzZXMgKGZv
ciBpbnN0YW5jZTogaWYgd2UKKyAgICAgICAgaGF2ZSBhIG11bHRpcGxlIHNlbGVjdCwgYW5kIHRo
ZSAiY2hhbmdlIiBldmVudCBoYW5kbGVyIGJsdXJzIHRoZSBzZWxlY3QsIHRoZSB1c2VyIG1heSBj
aGVjayBvciB1bmNoZWNrIG11bHRpcGxlCisgICAgICAgIGl0ZW1zLCBidXQgb25seSB0aGUgZmly
c3QgY2hhbmdlIHdpbGwgYWN0dWFsbHkgdGFrZSBlZmZlY3QpLgorCisgICAgICAgIFRvIGZpeCB0
aGlzLCB3ZSBtYWludGFpbiBhIGJhY2tncm91bmQgYWN0aXZpdHkgdG9rZW4gd2hpbGUgcHJlc2Vu
dGluZyBhbiBpbnB1dCB2aWV3IGNvbnRyb2xsZXIuCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBmb2N1c2VkRm9ybUNvbnRyb2xWaWV3RGlkQmVnaW5FZGl0aW5nOl0pOgorCisgICAgICAgIFN0
YXJ0IGhpZGluZyB0aGUgZm9jdXNlZCBmb3JtIG92ZXJsYXkgd2hlbiByZS1wcmVzZW50aW5nIGFu
IGlucHV0IHZpZXcgY29udHJvbGxlci4gVGhpcyBhbGxvd3MgdXMgdG8gYmFpbCBmcm9tCisgICAg
ICAgIHNob3dpbmcgZnVsbHNjcmVlbiBpbnB1dCBVSSBmb3IgYW5vdGhlciBmb2N1c2VkIGVsZW1l
bnQgaWYgZm9jdXMgcHJvZ3JhbW1hdGljYWxseSBjaGFuZ2VzIHdoaWxlIHRoZSBjdXJyZW50Cisg
ICAgICAgIGZ1bGxzY3JlZW4gaW5wdXQgdmlldyBjb250cm9sbGVyIGlzIHByZXNlbnRlZCwgZHVl
IHRvIHRoZSAtaXNIaWRkZW4gY2hlY2sgaW4gLV9zdGFydEFzc2lzdGluZ05vZGU6LgorCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzpdKToKKwor
ICAgICAgICBTaW11bGF0ZSB0YXBwaW5nIGEgZ2l2ZW4gcm93IGluIHNlbGVjdCBtZW51IFVJIGlu
IGV4dHJhIHpvb20gbW9kZS4KKwogMjAxOC0wNC0xNyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQnVpbGQgZmFpbHVyZSBk
dWUgdG8gcHJlc2VuY2Ugb2YgQXZhaGkncyA8ZG5zX3NkLmg+IGhlYWRlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgK
aW5kZXggZDEyYWEyMGRkMWY3ODU3NGMzYzljNjkyODUxZTcwZTU3MjYwNTUwZi4uZjdiNWVmZDFh
ODk3YzQ5M2U5NTI5ZWUzMTY0NDMzZGUzOTRhMzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xNTMs
NiArMTUzLDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TSW50ZWdlcilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkYXRhT3duZXJGb3JEcmFnU2Vzc2lvbjooaWQgPFVJRHJhZ1Nl
c3Npb24+KXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogI2VuZGlmCiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZENoYW5nZVNhZmVBcmVhU2hvdWxk
QWZmZWN0T2JzY3VyZWRJbnNldHM6KEJPT0wpc2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZElu
c2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZFByZXNlbnRGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihV
SVZpZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NG
b2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxl
ciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZWxzZSAvLyBUQVJHRVRfT1Nf
SVBIT05FCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40
KSk7CiAtICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzLjQpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJmNWZlNGE1
MmQ5ZWM3OWExMjAyOTM4MjZkMTM1OTkyNTg5MDQwMjAuLjlhMDFkNWI0YjM1NzFhODg3NjYxMmM3
NWEzY2FkNzI5MDQ4NGEzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTQwNyw0ICsxNDA3LDI2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRDaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eSh1aW50NjRfdCBjYWxsYmFja0lkZW50
CiAgICAgY2FsbGJhY2soaXNMb2NhbGx5UmVhY2hhYmxlID8gTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI6Okhhc0FjdGl2aXR5OjpZZXMgOiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6SGFz
QWN0aXZpdHk6Ok5vKTsKIH0KIAorI2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5Ojp0YWtlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVu
SW5wdXQoKQoreworICAgIGlmIChtX2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVl
bkZvcm1Db250cm9scykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9iYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbkZvckZ1bGxzY3JlZW5Gb3JtQ29udHJvbHMgPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbigpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQ
cm9jZXNzIGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgaXQgaXMgcHJl
c2VudGluZyBmdWxsc2NyZWVuIFVJIGZvciBmb3JtIGNvbnRyb2xzLiIpOworfQorCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6cmVsZWFzZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVl
bklucHV0KCkKK3sKKyAgICBpZiAoIW1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2Ny
ZWVuRm9ybUNvbnRyb2xzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2JhY2tncm91bmRBY3Rp
dml0eVRva2VuRm9yRnVsbHNjcmVlbkZvcm1Db250cm9scyA9IG51bGxwdHI7CisgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gYmVjYXVzZSBpdCBoYXMgZGlzbWlzc2VkIGZ1bGxzY3JlZW4gVUkgZm9y
IGZvcm0gY29udHJvbHMuIik7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzY3NzBlYTg1
NDhiZGZmNWM2MjlmNDNkNjNkMDMyYTE3MDE1YjVhZC4uNjA3YjliMmFlNGFkZDI0NjY1MDFiMjE4
ODZjMzRjOTExYWZkMGJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKQEAgLTIxMiw2ICsyMTIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZFdlYlBh
Z2VQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2b2lkIHN1c3BlbmRlZFBhZ2VXYXNEZXN0cm95
ZWQoU3VzcGVuZGVkUGFnZVByb3h5Jik7CiAKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQor
ICAgIHZvaWQgdGFrZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCk7
CisgICAgdm9pZCByZWxlYXNlQmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5w
dXQoKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
UGFnZUlEKCk7CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURh
dGFTdG9yZSYpOwpAQCAtMzQwLDYgKzM0NSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXI6Okhhc0FjdGl2aXR5KT4+IG1fbG9jYWxQb3J0QWN0aXZpdHlDb21wbGV0aW9uSGFu
ZGxlcnM7CiAKICAgICBib29sIG1faGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcyB7IGZh
bHNlIH07CisKKyNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQorICAgIFByb2Nlc3NUaHJvdHRs
ZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuIG1fYmFja2dyb3VuZEFjdGl2aXR5VG9rZW5Gb3JG
dWxsc2NyZWVuRm9ybUNvbnRyb2xzOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IGY4MWUwMDg3OWZlZTM5NTAzYmQ4ZDE3YjM5MTJiYThjMjE2
NTI3MjkuLjQ2NzUzZDg3ZmIyOTg5NTBhM2JiZDljZmI0MDk1ODRlODczOTU5ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtNDAxMywxOCArNDAxMywyNiBAQCAtICh2b2lkKV9zdGFydEFzc2lzdGluZ05v
ZGU6KGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbgog
ICAgIGlmIChbaW5wdXREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OmZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246KV0pCiAgICAgICAgIHNob3VsZFNob3dL
ZXlib2FyZCA9IFtpbnB1dERlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxkU3Rh
cnRJbnB1dFNlc3Npb246Zm9jdXNlZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsKLSAg
ICAgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNl
IGlmIHRoZSB1c2VyIGlzIGludGVyYWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFj
dGl2ZS4KLSAgICAgICAgc2hvdWxkU2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwg
X2lzQ2hhbmdpbmdGb2N1cyB8fCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGU7Ci0jaWYgRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCi0gICAgICAgIHNob3VsZFNob3dLZXlib2FyZCB8PSBfZHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLmlzUGVyZm9ybWluZ0Ryb3AoKTsKKyAgICAgICAgLy8gVGhlIGRlZmF1
bHQgYmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGlu
dGVyYWN0aW5nLgorICAgICAgICAvLyBXZSBhbHNvIGFsbG93IG5vZGUgYXNzaXN0YW5jZSBpZiB0
aGUga2V5Ym9hcmQgYWxyZWFkeSBpcyBzaG93aW5nLCB1bmxlc3Mgd2UncmUgaW4gZXh0cmEgem9v
bSBtb2RlLgorICAgICAgICBzaG91bGRTaG93S2V5Ym9hcmQgPSB1c2VySXNJbnRlcmFjdGluZwor
I2lmIEVOQUJMRShFWFRSQV9aT09NX01PREUpCisgICAgICAgICAgICB8fCAoX2lzQ2hhbmdpbmdG
b2N1cyAmJiAhW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGlzSGlkZGVuXSkKKyNlbHNlCisgICAg
ICAgICAgICB8fCBfaXNDaGFuZ2luZ0ZvY3VzCiAjZW5kaWYKKyNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQorICAgICAgICAgICAgfHwgX2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5pc1BlcmZvcm1p
bmdEcm9wKCkKKyNlbmRpZgorICAgICAgICAgICAgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwog
ICAgIH0KLSAgICBpZiAoIXNob3VsZFNob3dLZXlib2FyZCkKLSAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKGJsdXJQcmV2aW91c05vZGUpCiAgICAgICAgIFtzZWxmIF9zdG9wQXNzaXN0aW5nTm9k
ZV07CiAKKyAgICBpZiAoIXNob3VsZFNob3dLZXlib2FyZCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKCFpc0Fzc2lzdGFibGVJbnB1dFR5cGUoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTQyMTgsNiArNDIyNiwxNiBAQCAtICh2b2lkKXByZXNlbnRW
aWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3RlZE5vZGUKICAgICAgICAgW19pbnB1dE5hdmln
YXRpb25WaWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5JbnB1dHMgcHVzaFZpZXdDb250cm9sbGVy
Ol9wcmVzZW50ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZ
RVNdOwogICAgIGVsc2UKICAgICAgICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlciBwcmVzZW50
Vmlld0NvbnRyb2xsZXI6X3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOm5pbF07CisKKyAgICAvLyBQcmVzZW50aW5nIGEg
ZnVsbHNjcmVlbiBpbnB1dCB2aWV3IGNvbnRyb2xsZXIgZnVsbHkgb2JzY3VyZXMgdGhlIHdlYiB2
aWV3LiBXaXRob3V0IHRha2luZyB0aGlzIHRva2VuLCB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyB3
aWxsIGdldCBiYWNrZ3JvdW5kZWQuCisgICAgX3BhZ2UtPnByb2Nlc3MoKS50YWtlQmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW5Gb3JGdWxsc2NyZWVuSW5wdXQoKTsKKworICAgIFtwcmVzZW50aW5nVmll
d0NvbnRyb2xsZXIudHJhbnNpdGlvbkNvb3JkaW5hdG9yIGFuaW1hdGVBbG9uZ3NpZGVUcmFuc2l0
aW9uOm5pbCBjb21wbGV0aW9uOlt3ZWFrV2ViVmlldyA9IFdlYWtPYmpDUHRyPFdLV2ViVmlldz4o
X3dlYlZpZXcpLCBjb250cm9sbGVyID0gX3ByZXNlbnRlZEZ1bGxTY3JlZW5JbnB1dFZpZXdDb250
cm9sbGVyXSAoaWQgPFVJVmlld0NvbnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250ZXh0
PikgeworICAgICAgICBhdXRvIHN0cm9uZ1dlYlZpZXcgPSB3ZWFrV2ViVmlldy5nZXQoKTsKKyAg
ICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtzdHJvbmdXZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAg
ICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6ZGlkUHJlc2VudEZvY3VzZWRFbGVtZW50Vmlld0NvbnRyb2xsZXI6KV0pCisgICAgICAgICAg
ICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpzdHJvbmdXZWJWaWV3LmdldCgpIGRpZFByZXNlbnRGb2N1
c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOmNvbnRyb2xsZXIuZ2V0KCldOworICAgIH1dOwogfQog
CiAtICh2b2lkKWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9sbGVyczooQk9PTClhbmltYXRlZApA
QCAtNDIyNSwxNiArNDI0MywyOCBAQCAtICh2b2lkKWRpc21pc3NBbGxJbnB1dFZpZXdDb250cm9s
bGVyczooQk9PTClhbmltYXRlZAogICAgIGF1dG8gbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBXVEZN
b3ZlKF9pbnB1dE5hdmlnYXRpb25WaWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5JbnB1dHMpOwog
ICAgIGF1dG8gcHJlc2VudGVkQ29udHJvbGxlciA9IFdURk1vdmUoX3ByZXNlbnRlZEZ1bGxTY3Jl
ZW5JbnB1dFZpZXdDb250cm9sbGVyKTsKIAorICAgIGlmICghcHJlc2VudGVkQ29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKFtuYXZpZ2F0aW9uQ29udHJvbGxlciB2aWV3Q29u
dHJvbGxlcnNdLmxhc3RPYmplY3QgPT0gcHJlc2VudGVkQ29udHJvbGxlci5nZXQoKSkKICAgICAg
ICAgW25hdmlnYXRpb25Db250cm9sbGVyIHBvcFZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0
ZWRdOwogICAgIGVsc2UKICAgICAgICAgW3ByZXNlbnRlZENvbnRyb2xsZXIgZGlzbWlzc1ZpZXdD
b250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0ZWQgY29tcGxldGlvbjpuaWxdOwogCisgICAgW1twcmVz
ZW50ZWRDb250cm9sbGVyIHRyYW5zaXRpb25Db29yZGluYXRvcl0gYW5pbWF0ZUFsb25nc2lkZVRy
YW5zaXRpb246bmlsIGNvbXBsZXRpb246W3dlYWtXZWJWaWV3ID0gV2Vha09iakNQdHI8V0tXZWJW
aWV3Pihfd2ViVmlldyksIGNvbnRyb2xsZXIgPSBwcmVzZW50ZWRDb250cm9sbGVyXSAoaWQgPFVJ
Vmlld0NvbnRyb2xsZXJUcmFuc2l0aW9uQ29vcmRpbmF0b3JDb250ZXh0PikgeworICAgICAgICBh
dXRvIHN0cm9uZ1dlYlZpZXcgPSB3ZWFrV2ViVmlldy5nZXQoKTsKKyAgICAgICAgaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4+KFtzdHJvbmdXZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRGlzbWlzc0Zv
Y3VzZWRFbGVtZW50Vmlld0NvbnRyb2xsZXI6KV0pCisgICAgICAgICAgICBbdWlEZWxlZ2F0ZSBf
d2ViVmlldzpzdHJvbmdXZWJWaWV3LmdldCgpIGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdD
b250cm9sbGVyOmNvbnRyb2xsZXIuZ2V0KCldOworICAgIH1dOworCiAgICAgaWYgKF9zaG91bGRS
ZXN0b3JlRmlyc3RSZXNwb25kZXJTdGF0dXNBZnRlckxvc2luZ0ZvY3VzKSB7CiAgICAgICAgIF9z
aG91bGRSZXN0b3JlRmlyc3RSZXNwb25kZXJTdGF0dXNBZnRlckxvc2luZ0ZvY3VzID0gTk87CiAg
ICAgICAgIGlmICghc2VsZi5pc0ZpcnN0UmVzcG9uZGVyKQogICAgICAgICAgICAgW3NlbGYgYmVj
b21lRmlyc3RSZXNwb25kZXJdOwogICAgIH0KKworICAgIF9wYWdlLT5wcm9jZXNzKCkucmVsZWFz
ZUJhY2tncm91bmRBY3Rpdml0eVRva2VuRm9yRnVsbHNjcmVlbklucHV0KCk7CiB9CiAKIC0gKHZv
aWQpZm9jdXNlZEZvcm1Db250cm9sVmlld0RpZFN1Ym1pdDooV0tGb2N1c2VkRm9ybUNvbnRyb2xW
aWV3ICopdmlldwpAQCAtNDI1MSw4ICs0MjgxLDEyIEBAIC0gKHZvaWQpZm9jdXNlZEZvcm1Db250
cm9sVmlld0RpZENhbmNlbDooV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3ICopdmlldwogLSAodm9p
ZClmb2N1c2VkRm9ybUNvbnRyb2xWaWV3RGlkQmVnaW5FZGl0aW5nOihXS0ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXcgKil2aWV3CiB7CiAgICAgW3NlbGYgdXBkYXRlQ3VycmVudEFzc2lzdGVkTm9kZUlu
Zm9ybWF0aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSAo
Ym9vbCBkaWRVcGRhdGUpIHsKLSAgICAgICAgaWYgKGRpZFVwZGF0ZSkKLSAgICAgICAgICAgIFt3
ZWFrU2VsZiBwcmVzZW50Vmlld0NvbnRyb2xsZXJGb3JDdXJyZW50QXNzaXN0ZWROb2RlXTsKKyAg
ICAgICAgaWYgKCFkaWRVcGRhdGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0
byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIFtzdHJvbmdTZWxmIHByZXNl
bnRWaWV3Q29udHJvbGxlckZvckN1cnJlbnRBc3Npc3RlZE5vZGVdOworICAgICAgICBbc3Ryb25n
U2VsZi0+X2ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgaGlkZTpZRVNdOwogICAgIH1dOwogfQogCkBA
IC01NDAzLDggKzU0MzcsMTMgQEAgLSAodm9pZClfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExv
Y2F0aW9uOihDR1BvaW50KWxvY2F0aW9uCiAKIC0gKHZvaWQpc2VsZWN0Rm9ybUFjY2Vzc29yeVBp
Y2tlclJvdzooTlNJbnRlZ2VyKXJvd0luZGV4CiB7CisjaWYgRU5BQkxFKEVYVFJBX1pPT01fTU9E
RSkKKyAgICBpZiAoW19wcmVzZW50ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlciBpc0tp
bmRPZkNsYXNzOltXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIgY2xhc3NdXSkKKyAgICAg
ICAgWyhXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkRnVsbFNjcmVl
bklucHV0Vmlld0NvbnRyb2xsZXIuZ2V0KCkgc2VsZWN0SXRlbUF0SW5kZXg6cm93SW5kZXhdOwor
I2Vsc2UKICAgICBpZiAoW19pbnB1dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtU2Vs
ZWN0Q29udHJvbCBzZWxmXV0pCiAgICAgICAgIFsoV0tGb3JtU2VsZWN0Q29udHJvbCAqKV9pbnB1
dFBlcmlwaGVyYWwgc2VsZWN0Um93OnJvd0luZGV4IGluQ29tcG9uZW50OjAgZXh0ZW5kaW5nU2Vs
ZWN0aW9uOk5PXTsKKyNlbmRpZgogfQogCiAtIChOU1N0cmluZyAqKXNlbGVjdEZvcm1Qb3BvdmVy
VGl0bGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAzMjE1YWZiYWY5ZDY1OWY3M2UzZjI0ZDFiN2E3MmJjNDU3MDE3NzBiLi5hMTJkMGQ4MDdkZDI0
ODhlZjgyNTIwNGMyZjRjNjA3YTFmZWMzMDEwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDQtMTUgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20g
bW9kZV0gUHJvZ3JhbW1hdGljYWxseSBjaGFuZ2luZyBmb2N1cyB3aGVuIGFuIGVsZW1lbnQgYWxy
ZWFkeSBoYXMgZm9jdXMgaXMgYSBjb25mdXNpbmcgZXhwZXJpZW5jZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zOTQ0MDY0Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgIEFkZCBwbHVtYmluZyB0byBzdXBwb3J0IGludm9raW5nIGBkaWRIaWRlS2V5Ym9hcmRD
YWxsYmFja2AgYW5kIGBkaWRTaG93S2V5Ym9hcmRDYWxsYmFja2Agd2hlbiAocmVzcGVjdGl2ZWx5
KQorICAgICAgICBkaXNtaXNzaW5nIG9yIHByZXNlbnRpbmcgZnVsbHNjcmVlbiBpbnB1dCB2aWV3
IGNvbnRyb2xsZXJzIGluIGV4dHJhIHpvb20gbW9kZS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFJ1bm5l
cldLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1Rl
c3RSdW5uZXJXS1dlYlZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJW
aWV3IF9pbnZva2VTaG93S2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XSk6CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2ludm9rZUhpZGVLZXlib2FyZENhbGxiYWNrSWZOZWNlc3Nh
cnldKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfa2V5Ym9hcmREaWRTaG93Ol0p
OgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9rZXlib2FyZERpZEhpZGU6XSk6Cisg
ICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgX3dlYlZpZXc6ZGlkUHJlc2VudEZvY3VzZWRF
bGVtZW50Vmlld0NvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcg
X3dlYlZpZXc6ZGlkRGlzbWlzc0ZvY3VzZWRFbGVtZW50Vmlld0NvbnRyb2xsZXI6XSk6CisKIDIw
MTgtMDQtMTcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgcm9sbG91dCBvZiByMjMwNjMyLiBSZWdyZXNzaW9uIGluIG1lbW9yeSB1c2Fn
ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5tbQppbmRleCBjNmNkNGVkYjk1NDhhMzQzZjIzYmE4YjY4NzY0MjRiMjdhMTkwNjU4Li43
ZmY3ZmQ1Y2YxMjYwZWI5MDEzNjNjOGM0ZWY5YTk0MDNiN2MzNTBmIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3LmgiCiAKICNpbXBvcnQgIldl
YktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8uaCIKKyNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdh
dGVQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCkBAIC00NiwxMiArNDcsMTEgQEAgQGVuZAogCiAjaWYgV0tfQVBJX0VOQUJM
RUQKIAotQGludGVyZmFjZSBUZXN0UnVubmVyV0tXZWJWaWV3ICgpIHsKK0BpbnRlcmZhY2UgVGVz
dFJ1bm5lcldLV2ViVmlldyAoKSA8V0tVSURlbGVnYXRlUHJpdmF0ZT4gewogICAgIFJldGFpblB0
cjxOU051bWJlciAqPiBtX3N0YWJsZVN0YXRlT3ZlcnJpZGU7CiB9CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSB2b2lkICheem9vbVRvU2NhbGVDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXnNob3dLZXlib2FyZENvbXBsZXRp
b25IYW5kbGVyKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChecmV0
cmlldmVTcGVha1NlbGVjdGlvbkNvbnRlbnRDb21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBpc1Nob3dpbmdLZXlib2FyZDsKIApAQCAtNzIsOCArNzIs
MTAgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1
cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW8KIHsKICAgICBpZiAoc2VsZiA9IFtzdXBlciBp
bml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pIHsKICAgICAg
ICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIGNlbnRlciA9IFtOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXTsKLSAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRTaG93OikgbmFtZTpVSUtleWJvYXJkRGlkU2hvd05vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRIaWRlOikgbmFtZTpVSUtleWJvYXJkRGlkSGlk
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfaW52b2tlU2hvd0tleWJvYXJkQ2FsbGJhY2tJZk5lY2Vz
c2FyeSkgbmFtZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAg
ICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfaW52b2tl
SGlkZUtleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeSkgbmFtZTpVSUtleWJvYXJkRGlkSGlkZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKworICAgICAgICBzZWxmLlVJRGVsZWdhdGUgPSBzZWxm
OwogICAgIH0KICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTk0LDcgKzk2LDYgQEAgLSAodm9pZClk
ZWFsbG9jCiAgICAgc2VsZi5yb3RhdGlvbkRpZEVuZENhbGxiYWNrID0gbmlsOwogCiAgICAgc2Vs
Zi56b29tVG9TY2FsZUNvbXBsZXRpb25IYW5kbGVyID0gbmlsOwotICAgIHNlbGYuc2hvd0tleWJv
YXJkQ29tcGxldGlvbkhhbmRsZXIgPSBuaWw7CiAgICAgc2VsZi5yZXRyaWV2ZVNwZWFrU2VsZWN0
aW9uQ29udGVudENvbXBsZXRpb25IYW5kbGVyID0gbmlsOwogCiAgICAgW3N1cGVyIGRlYWxsb2Nd
OwpAQCAtMTM5LDcgKzE0MCw3IEBAIC0gKHZvaWQpem9vbVRvU2NhbGU6KGRvdWJsZSlzY2FsZSBh
bmltYXRlZDooQk9PTClhbmltYXRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pCiAgICAgW3NlbGYu
c2Nyb2xsVmlldyBzZXRab29tU2NhbGU6c2NhbGUgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCi0t
ICh2b2lkKV9rZXlib2FyZERpZFNob3c6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCist
ICh2b2lkKV9pbnZva2VTaG93S2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5CiB7CiAgICAgaWYg
KHNlbGYuaXNTaG93aW5nS2V5Ym9hcmQpCiAgICAgICAgIHJldHVybjsKQEAgLTE0OSw3ICsxNTAs
NyBAQCAtICh2b2lkKV9rZXlib2FyZERpZFNob3c6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiAgICAgICAgIHNlbGYuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2soKTsKIH0KIAotLSAodm9p
ZClfa2V5Ym9hcmREaWRIaWRlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgorLSAodm9p
ZClfaW52b2tlSGlkZUtleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeQogewogICAgIGlmICghc2Vs
Zi5pc1Nob3dpbmdLZXlib2FyZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjMxLDcgKzIzMiwyMSBA
QCAtIChVSUVkZ2VJbnNldHMpX3NhZmVBcmVhSW5zZXRzRm9yRnJhbWU6KENHUmVjdClmcmFtZSBp
blN1cGVydmlldzooVUlWaWV3ICopdmlldwogICAgIHJldHVybiBfb3ZlcnJpZGVTYWZlQXJlYUlu
c2V0czsKIH0KIAotI2VuZGlmCisjcHJhZ21hIG1hcmsgLSBXS1VJRGVsZWdhdGVQcml2YXRlCisK
Ky8vIEluIGV4dHJhIHpvb20gbW9kZSwgZnVsbHNjcmVlbiBmb3JtIGNvbnRyb2wgVUkgdGFrZXMg
b24gdGhlIHNhbWUgcm9sZSBhcyBrZXlib2FyZHMgYW5kIGlucHV0IHZpZXcgY29udHJvbGxlcnMK
Ky8vIGluIFVJS2l0LiBBcyBzdWNoLCB3ZSBhbGxvdyBrZXlib2FyZCBwcmVzZW50YXRpb24gYW5k
IGRpc21pc3NhbCBjYWxsYmFja3MgdG8gd29yayBpbiBleHRyYSB6b29tIG1vZGUgYXMgd2VsbC4K
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUHJlc2VudEZvY3VzZWRF
bGVtZW50Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyCit7Cisg
ICAgW3NlbGYgX2ludm9rZVNob3dLZXlib2FyZENhbGxiYWNrSWZOZWNlc3NhcnldOworfQorCist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2VkRWxl
bWVudFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopY29udHJvbGxlcgoreworICAg
IFtzZWxmIF9pbnZva2VIaWRlS2V5Ym9hcmRDYWxsYmFja0lmTmVjZXNzYXJ5XTsKK30KKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKIAogQGVuZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWZkNjgzY2ViZGI0ZDRkYTAw
NjVlOWExODRhZmRjNDkxZTM5MzEzZC4uOTYxZjY3OWZmNDBiYWQzZDkyNTI4MGRiNjhhYWI4ZGRk
MzQ4ODBlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA0LTE1ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIFBy
b2dyYW1tYXRpY2FsbHkgY2hhbmdpbmcgZm9jdXMgd2hlbiBhbiBlbGVtZW50IGFscmVhZHkgaGFz
IGZvY3VzIGlzIGEgY29uZnVzaW5nIGV4cGVyaWVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDYzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
Mzk0NDA2NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBB
ZGQgYSBuZXcgbGF5b3V0IHRlc3QgdG8gZXhlcmNpc2UgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBv
ZiBldmVudHMgaW4gZXh0cmEgem9vbSBtb2RlOgorCisgICAgICAgIDEuIEZvY3VzIHNlbGVjdCBl
bGVtZW50ICMxLgorICAgICAgICAyLiBDaG9vc2UgYW4gdW5zZWxlY3RlZCBvcHRpb24uCisgICAg
ICAgIDMuIFByb2dyYW1tYXRpY2FsbHkgZm9jdXMgc2VsZWN0IGVsZW1lbnQgIzIgaW4gdGhlICJj
aGFuZ2UiIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIDQuIENob29zZSBhbiB1bnNlbGVjdGVkIG9w
dGlvbi4KKyAgICAgICAgNS4gUHJvZ3JhbW1hdGljYWxseSBibHVyIHNlbGVjdCBlbGVtZW50ICMy
IGluIHRoZSAiY2hhbmdlIiBldmVudCBoYW5kbGVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMv
ZXh0cmF6b29tL2NoYW5nZS1mb2N1cy1kdXJpbmctY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZXh0cmF6b29tL2NoYW5nZS1mb2N1cy1kdXJp
bmctY2hhbmdlLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxw
ZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9IaWRlLnJl
dHVybi5uZXcuUHJvbWlzZSk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZvcktleWJv
YXJkVG9IaWRlKToKKwogMjAxOC0wNC0xNyAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXRhaW4gTWVzc2FnZVBvcnRDaGFubmVsIGZvciB0cmFuc2ZlciB3
aGVuIGRpc2VudGFuZ2xpbmcgcG9ydHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2V4dHJhem9vbS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmlu
Zy1jaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNzUwMDlmMDlkMGE4M2E5
MjIwYzM2MjQwN2ZlMjY3NTQ3Y2FjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9leHRyYXpvb20vY2hhbmdlLWZvY3VzLWR1cmluZy1jaGFuZ2UtZXZlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKK0Nob29zaW5nIHNlY29uZCBvcHRpb24gaW4gdG9wIHNlbGVj
dC4uLgorT3B0aW9uIHR3byBzaG91bGQgYmUgc2VsZWN0ZWQ6IHRydWUKK0Nob29zaW5nIHNlY29u
ZCBvcHRpb24gaW4gYm90dG9tIHNlbGVjdC4uLgorT3B0aW9uIGZvdXIgc2hvdWxkIGJlIHNlbGVj
dGVkOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9v
bS9jaGFuZ2UtZm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvZXh0cmF6b29tL2NoYW5nZS1mb2N1cy1kdXJpbmctY2hhbmdlLWV2ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGViODIwZmYyNDM5OTYzYzNhMDczNmJlZmYyZGIzNjE0MGQ2MGRjZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2V4dHJhem9vbS9jaGFuZ2Ut
Zm9jdXMtZHVyaW5nLWNoYW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQ
RSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoIj4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSwgaHRt
bCB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAg
ICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgfQorICAgICAgICBzZWxlY3QgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDgwcHg7CisgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAg
ICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gc2VsZWN0T3B0aW9uQXRJbmRleEFuZFdhaXRG
b3JLZXlib2FyZFRvSGlkZShpbmRleCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlc29sdmUgPT4geworICAgICAgICAgICAgICAgIFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRv
SGlkZSgpLnRoZW4ocmVzb2x2ZSk7CisgICAgICAgICAgICAgICAgVUlIZWxwZXIuc2VsZWN0Rm9y
bUFjY2Vzc29yeVBpY2tlclJvdyhpbmRleCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICAvLyBGaXJz
dCwgdGFwIG9uIHRoZSB0b3Agc2VsZWN0IGFuZCBjaG9vc2UgdGhlIHNlY29uZCBvcHRpb24uIENo
YW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGNhdXNlcyB0aGUKKyAgICAgICAgICAgIC8v
IGJvdHRvbSBzZWxlY3QgdG8gYmUgZm9jdXNlZC4KKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LmFjdGl2YXRlQW5kV2FpdEZvcklucHV0U2Vzc2lvbkF0KDUwLCA0MCk7CisgICAgICAgICAgICBv
dXRwdXQuaW5uZXJIVE1MICs9ICJDaG9vc2luZyBzZWNvbmQgb3B0aW9uIGluIHRvcCBzZWxlY3Qu
Li48YnI+IjsKKyAgICAgICAgICAgIGF3YWl0IHNlbGVjdE9wdGlvbkF0SW5kZXhBbmRXYWl0Rm9y
S2V5Ym9hcmRUb0hpZGUoMSk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9IGBPcHRp
b24gdHdvIHNob3VsZCBiZSBzZWxlY3RlZDogJHt0d28uc2VsZWN0ZWR9PGJyPmA7CisKKyAgICAg
ICAgICAgIC8vIE5vdyB0YXAgb24gdGhlIGJvdHRvbSBzZWxlY3QgYW5kIGNob29zZSB0aGUgc2Vj
b25kIG9wdGlvbi4gQ2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoaXMgc2VsZWN0IGNhdXNlcyB0aGUK
KyAgICAgICAgICAgIC8vIHNlbGVjdCB0byBibHVyLCBkaXNtaXNzaW5nIHRoZSBpbnB1dCB2aWV3
LgorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uQXQoNTAsIDEyMCk7CisgICAgICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9ICJDaG9vc2lu
ZyBzZWNvbmQgb3B0aW9uIGluIGJvdHRvbSBzZWxlY3QuLi48YnI+IjsKKyAgICAgICAgICAgIGF3
YWl0IHNlbGVjdE9wdGlvbkF0SW5kZXhBbmRXYWl0Rm9yS2V5Ym9hcmRUb0hpZGUoMSk7CisgICAg
ICAgICAgICBvdXRwdXQuaW5uZXJIVE1MICs9IGBPcHRpb24gZm91ciBzaG91bGQgYmUgc2VsZWN0
ZWQ6ICR7Zm91ci5zZWxlY3RlZH08YnI+YDsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxzZWxlY3QgaWQ9InRvcCIgb25jaGFuZ2U9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdib3R0b20nKS5mb2N1cygpIj4KKyAgICA8b3B0aW9uIHNlbGVjdGVkPk9uZTwvb3B0aW9uPgor
ICAgIDxvcHRpb24gaWQ9InR3byI+VHdvPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
ImJvdHRvbSIgb25jaGFuZ2U9InRoaXMuYmx1cigpIj4KKyAgICA8b3B0aW9uIHNlbGVjdGVkPlRo
cmVlPC9vcHRpb24+CisgICAgPG9wdGlvbiBpZD0iZm91ciI+Rm91cjwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMjJhZGFlYmJkY2EyYjM3MzgzZjE3NTlkNTQ5NGFiMDAz
YmI2YTU0ZS4uMDk5ZGY4MzEwYzBmOThhZmJmMWU4YWNhMmRlZTk0YzljMjFjNWE2ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMDAsNiArMTAwLDE2IEBAIHdpbmRvdy5VSUhl
bHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgc3RhdGlj
IHdhaXRGb3JLZXlib2FyZFRvSGlkZSgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAg
ICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJv
bGxlci5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlw
dENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOworICAgICAgICB9
KTsKKyAgICB9CisKICAgICBzdGF0aWMgZ2V0VUlDYXJldFJlY3QoKQogICAgIHsKICAgICAgICAg
aWYgKCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlzLmlzSU9TKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>