<?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>21188</bug_id>
          
          <creation_ts>2008-09-27 17:56:54 -0700</creation_ts>
          <short_desc>Make scrollbar suppression and resizer avoidance cross-platform.</short_desc>
          <delta_ts>2008-09-27 18:16:46 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>21083</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93108</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-27 17:56:54 -0700</bug_when>
    <thetext>Make scrollbar suppression and resizer avoidance cross-platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93109</commentid>
    <comment_count>1</comment_count>
      <attachid>23887</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-27 17:58:11 -0700</bug_when>
    <thetext>Created attachment 23887
Make scrollbar suppression and resizer avoidance cross-platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93111</commentid>
    <comment_count>2</comment_count>
      <attachid>23887</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-09-27 18:06:43 -0700</bug_when>
    <thetext>Comment on attachment 23887
Make scrollbar suppression and resizer avoidance cross-platform.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93112</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-09-27 18:16:46 -0700</bug_when>
    <thetext>Fixed in r37019-21.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23887</attachid>
            <date>2008-09-27 17:58:11 -0700</date>
            <delta_ts>2008-09-27 18:06:43 -0700</delta_ts>
            <desc>Make scrollbar suppression and resizer avoidance cross-platform.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>38610</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MDE4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMDgtMDkt
MjcgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE4OAorCisgICAgICAgIE1ha2Ugc2Nyb2xs
YmFyIHN1cHByZXNzaW9uIGFuZCByZXNpemVyIGF2b2lkYW5jZSBjcm9zcy1wbGF0Zm9ybS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6dHJhbnNpdGlv
blRvQ29tbWl0dGVkKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnJlc2V0U2Nyb2xsYmFycyk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdG9yZVNjcm9sbGJhcik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OndpbmRvd1Jlc2l6ZXJSZWN0KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpyZXNpemVyT3ZlcmxhcHNDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OmFkanVzdFNjcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXJDb3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjpzZXRQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJzU3VwcHJlc3NlZCk6CisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsYmFyc1N1
cHByZXNzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6d2luZG93UmVzaXplclJl
Y3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXI6OnNldEZyYW1lUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6
OnNldFBhcmVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6U2Nyb2xsVmlld1ByaXZhdGU6OlNjcm9sbFZp
ZXdQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2
YXRlOjphZGp1c3RtZW50Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1
cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBhaW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6flNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1T
ZXRTY3JvbGxiYXJzU3VwcHJlc3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpz
ZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjpTY3Jv
bGxWaWV3UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpTY3JvbGxWaWV3
UHJpdmF0ZTo6dmFsdWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmZy
YW1lUmVjdHNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNj
cm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGFpbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9TY3JvbGxWaWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjpTY3JvbGxWaWV3UHJpdmF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJpdmF0ZTo6dmFsdWVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1Nj
cm9sbFZpZXdXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpTY3JvbGxWaWV3
UHJpdmF0ZTo6U2Nyb2xsVmlld1ByaXZhdGUpOgorCiAyMDA4LTA5LTI3ICBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFt
cGVkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IGxvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMzcwMTIpCisrKyBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAwLDcgKzI4MDAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjp0cmFuc2l0aW9uVG9Db21taXR0ZWQoCiAgICAgICAgICAgICAv
LyBUaGlzIGNvZGUgd2FzIG9yaWdpbmFsbHkgYWRkZWQgZm9yIGEgTGVvcGFyZCBwZXJmb3JtYW5j
ZSBpbXBvcnZlbWVudC4gV2UgZGVjaWRlZCB0byAKICAgICAgICAgICAgIC8vIGlmZGVmIGl0IHRv
IGZpeCBjb3JyZWN0bmVzcyBpc3N1ZXMgb24gVGlnZXIgZG9jdW1lbnRlZCBpbiA8cmRhcjovL3By
b2JsZW0vNTQ0MTgyMz4uCiAgICAgICAgICAgICBpZiAobV9mcmFtZS0+dmlldygpKQotICAgICAg
ICAgICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c3VwcHJlc3NTY3JvbGxiYXJzKHRydWUpOworICAg
ICAgICAgICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQodHJ1
ZSk7CiAjZW5kaWYKICAgICAgICAgICAgIG1fY2xpZW50LT50cmFuc2l0aW9uVG9Db21taXR0ZWRG
b3JOZXdQYWdlKCk7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IHBhZ2UvRnJhbWVWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDM3MDEyKQorKysg
cGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsOSArMjEwLDkgQEAgdm9p
ZCBGcmFtZVZpZXc6OnJlc2V0U2Nyb2xsYmFycygpCiB7CiAgICAgLy8gUmVzZXQgdGhlIGRvY3Vt
ZW50J3Mgc2Nyb2xsYmFycyBiYWNrIHRvIG91ciBkZWZhdWx0cyBiZWZvcmUgd2UgeWllbGQgdGhl
IGZsb29yLgogICAgIGQtPm1fZmlyc3RMYXlvdXQgPSB0cnVlOwotICAgIHN1cHByZXNzU2Nyb2xs
YmFycyh0cnVlKTsKKyAgICBzZXRTY3JvbGxiYXJzU3VwcHJlc3NlZCh0cnVlKTsKICAgICBzZXRT
Y3JvbGxiYXJNb2RlcyhkLT5tX2htb2RlLCBkLT5tX3Ztb2RlKTsKLSAgICBzdXBwcmVzc1Njcm9s
bGJhcnMoZmFsc2UpOworICAgIHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGZhbHNlKTsKIH0KIAog
dm9pZCBGcmFtZVZpZXc6OmluaXQoKQpAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgRnJhbWVWaWV3
OjpjbGVhcigpCiAgICAgICAgIGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZnJhbWUtPm93
bmVyUmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlcmVyLT52aWV3Q2xlYXJlZCgpOwogCi0g
ICAgc3VwcHJlc3NTY3JvbGxiYXJzKHRydWUpOworICAgIHNldFNjcm9sbGJhcnNTdXBwcmVzc2Vk
KHRydWUpOwogfQogCiBib29sIEZyYW1lVmlldzo6ZGlkRmlyc3RMYXlvdXQoKSBjb25zdApAQCAt
NDQ4LDcgKzQ0OCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUK
ICAgICAgICAgU2Nyb2xsYmFyTW9kZSBjdXJyZW50Vk1vZGUgPSB2ZXJ0aWNhbFNjcm9sbGJhck1v
ZGUoKTsKIAogICAgICAgICBpZiAoZC0+bV9maXJzdExheW91dCB8fCAoaE1vZGUgIT0gY3VycmVu
dEhNb2RlIHx8IHZNb2RlICE9IGN1cnJlbnRWTW9kZSkpIHsKLSAgICAgICAgICAgIHN1cHByZXNz
U2Nyb2xsYmFycyh0cnVlKTsKKyAgICAgICAgICAgIHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRy
dWUpOwogICAgICAgICAgICAgaWYgKGQtPm1fZmlyc3RMYXlvdXQpIHsKICAgICAgICAgICAgICAg
ICBkLT5tX2ZpcnN0TGF5b3V0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgZC0+bV9maXJzdExh
eW91dENhbGxiYWNrUGVuZGluZyA9IHRydWU7CkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBGcmFt
ZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZQogICAgICAgICAgICAgICAgICAgICBzZXRI
b3Jpem9udGFsU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJBbHdheXNPZmYpOyAvLyBUaGlzIGNhdXNl
cyBhIGhvcml6b250YWwgc2Nyb2xsYmFyIHRvIGRpc2FwcGVhci4KICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHNldFNjcm9sbGJhck1vZGVzKGhNb2RlLCB2TW9kZSk7Ci0gICAgICAgICAgICBz
dXBwcmVzc1Njcm9sbGJhcnMoZmFsc2UsIHRydWUpOworICAgICAgICAgICAgc2V0U2Nyb2xsYmFy
c1N1cHByZXNzZWQoZmFsc2UsIHRydWUpOwogICAgICAgICB9CiAKICAgICAgICAgSW50U2l6ZSBv
bGRTaXplID0gbV9zaXplOwpAQCAtNTk5LDcgKzU5OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpyZW1v
dmVTbG93UmVwYWludE9iamVjdCgKIAogdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVTY3JvbGxiYXIo
KQogewotICAgIHN1cHByZXNzU2Nyb2xsYmFycyhmYWxzZSk7CisgICAgc2V0U2Nyb2xsYmFyc1N1
cHByZXNzZWQoZmFsc2UpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUmVjdEludG9WaWV3
UmVjdXJzaXZlbHkoY29uc3QgSW50UmVjdCYgcikKQEAgLTk5OCw2ICs5OTgsMTQgQEAgSW50UmVj
dCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0Rm9yTGF5ZQogICAgIHJldHVybiBpbnRlcnNlY3Rp
b24oY2xpcFJlY3QsIHdpbmRvd0NsaXBSZWN0KCkpOwogfQogCitJbnRSZWN0IEZyYW1lVmlldzo6
d2luZG93UmVzaXplclJlY3QoKSBjb25zdAoreworICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpID8g
ZnJhbWUoKS0+cGFnZSgpIDogMDsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBJbnRS
ZWN0KCk7CisgICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZXNpemVyUmVjdCgpOwor
fQorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogdm9pZCBGcmFtZVZpZXc6OnVwZGF0
ZURhc2hib2FyZFJlZ2lvbnMoKQogewpJbmRleDogcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBwYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAzNzAxMikKKysrIHBhZ2UvRnJhbWVWaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgSW50UmVj
dCB3aW5kb3dDbGlwUmVjdChib29sIGNsaXBUb0NvbnRlbnRzKSBjb25zdDsKICAgICBJbnRSZWN0
IHdpbmRvd0NsaXBSZWN0Rm9yTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIqLCBib29sIGNsaXBUb0xh
eWVyQ29udGVudHMpIGNvbnN0OwogCisgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJS
ZWN0KCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3UmVjdXJz
aXZlbHkoY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBJbnRQb2ludCYpOwogCkluZGV4OiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcwMTIpCisrKyBw
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCB2
b2lkIFNjcm9sbFZpZXc6OmluaXQoKQogICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckF1dG87CiAgICAgaWYgKHBsYXRmb3Jt
V2lkZ2V0KCkpCiAgICAgICAgIHBsYXRmb3JtU2V0Q2FuQmxpdE9uU2Nyb2xsKCk7CisgICAgbV9z
Y3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyID0gMDsKKyAgICBtX3Njcm9sbGJhcnNTdXBwcmVzc2Vk
ID0gZmFsc2U7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6YWRkQ2hpbGQoV2lkZ2V0KiBjaGlsZCkg
CkBAIC0xODEsMTAgKzE4Myw4NSBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OmNvbnRlbnRzVG9XaW5k
b3coY29uCiAgICAgcmV0dXJuIGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3codmlld1JlY3QpOwog
fQogCitib29sIFNjcm9sbFZpZXc6OnJlc2l6ZXJPdmVybGFwc0NvbnRlbnQoKSBjb25zdAorewor
ICAgIHJldHVybiAhbV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyOworfQorCit2b2lkIFNjcm9s
bFZpZXc6OmFkanVzdFNjcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXJDb3VudChpbnQgb3ZlcmxhcERl
bHRhKQoreworICAgIGludCBvbGRDb3VudCA9IG1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplcjsK
KyAgICBtX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIgKz0gb3ZlcmxhcERlbHRhOworICAgIGlm
IChwYXJlbnQoKSkKKyAgICAgICAgcGFyZW50KCktPmFkanVzdFNjcm9sbGJhcnNBdm9pZGluZ1Jl
c2l6ZXJDb3VudChvdmVybGFwRGVsdGEpOworICAgIGVsc2UgaWYgKCFzY3JvbGxiYXJzU3VwcHJl
c3NlZCgpKSB7CisgICAgICAgIC8vIElmIHdlIHdlbnQgZnJvbSBuIHRvIDAgb3IgZnJvbSAwIHRv
IG4gYW5kIHdlJ3JlIHRoZSBvdXRlcm1vc3QgdmlldywKKyAgICAgICAgLy8gd2UgbmVlZCB0byBp
bnZhbGlkYXRlIHRoZSB3aW5kb3dSZXNpemVyUmVjdCgpLCBzaW5jZSBpdCB3aWxsIG5vdyBuZWVk
IHRvIHBhaW50CisgICAgICAgIC8vIGRpZmZlcmVudGx5LgorICAgICAgICBpZiAob2xkQ291bnQg
PiAwICYmIG1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciA9PSAwIHx8CisgICAgICAgICAgICBv
bGRDb3VudCA9PSAwICYmIG1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciA+IDApCisgICAgICAg
ICAgICBpbnZhbGlkYXRlUmVjdCh3aW5kb3dSZXNpemVyUmVjdCgpKTsKKyAgICB9Cit9CisKK3Zv
aWQgU2Nyb2xsVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudFZpZXcpCit7CisgICAg
aWYgKHBhcmVudFZpZXcgPT0gcGFyZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIgJiYgcGFyZW50KCkpCisgICAgICAgIHBhcmVudCgp
LT5hZGp1c3RTY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyQ291bnQoLW1fc2Nyb2xsYmFyc0F2b2lk
aW5nUmVzaXplcik7CisKKyAgICBXaWRnZXQ6OnNldFBhcmVudChwYXJlbnRWaWV3KTsKKyAgICAK
KyAgICBpZiAobV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICYmIHBhcmVudCgpKQorICAgICAg
ICBwYXJlbnQoKS0+YWRqdXN0U2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplckNvdW50KG1fc2Nyb2xs
YmFyc0F2b2lkaW5nUmVzaXplcik7Cit9CisKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFy
c1N1cHByZXNzZWQoYm9vbCBzdXBwcmVzc2VkLCBib29sIHJlcGFpbnRPblVuc3VwcHJlc3MpCit7
CisgICAgaWYgKHN1cHByZXNzZWQgPT0gbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCA9IHN1cHByZXNzZWQ7CisKKyAg
ICBpZiAocGxhdGZvcm1XaWRnZXQoKSkKKyAgICAgICAgcGxhdGZvcm1TZXRTY3JvbGxiYXJzU3Vw
cHJlc3NlZChyZXBhaW50T25VbnN1cHByZXNzKTsKKyAgICBlbHNlIGlmIChyZXBhaW50T25VbnN1
cHByZXNzICYmICFzdXBwcmVzc2VkKSB7CisgICAgICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxi
YXIpCisgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKKyAg
ICAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIpCisgICAgICAgICAgICBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5pbnZhbGlkYXRlKCk7CisKKyAgICAgICAgLy8gSW52YWxpZGF0ZSB0aGUgc2Nyb2xs
IGNvcm5lciB0b28gb24gdW5zdXBwcmVzcy4KKyAgICAgICAgSW50UmVjdCBoQ29ybmVyOworICAg
ICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxT
Y3JvbGxiYXItPndpZHRoKCkgPiAwKSB7CisgICAgICAgICAgICBoQ29ybmVyID0gSW50UmVjdCht
X2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWlnaHQoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53
aWR0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xs
YmFyLT5oZWlnaHQoKSk7CisgICAgICAgICAgICBpbnZhbGlkYXRlUmVjdChoQ29ybmVyKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyICYmIGhlaWdodCgpIC0g
bV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7CisgICAgICAgICAgICBJbnRSZWN0
IHZDb3JuZXIod2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PmhlaWdodCgpKTsKKyAgICAgICAgICAgIGlmICh2Q29ybmVyICE9IGhDb3JuZXIpCisgICAgICAg
ICAgICAgICAgaW52YWxpZGF0ZVJlY3QodkNvcm5lcik7CisgICAgICAgIH0KKyAgICB9Cit9CisK
ICNpZiAhUExBVEZPUk0oTUFDKQogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldENhbkJsaXRP
blNjcm9sbCgpCiB7CiB9CisKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJz
U3VwcHJlc3NlZChib29sIHJlcGFpbnRPblVuc3VwcHJlc3MpCit7Cit9CiAjZW5kaWYKIAogI2lm
ICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShXWCkKSW5kZXg6IHBsYXRmb3JtL1Njcm9sbFZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHJldmlzaW9uIDM3MDEy
KQorKysgcGxhdGZvcm0vU2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIYXNoU2V0PFdpZGdldCo+KiBjaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuICZtX2NoaWxkcmVuOyB9CiAgICAgdm9pZCBhZGRDaGlsZChXaWRnZXQqKTsKICAg
ICB2b2lkIHJlbW92ZUNoaWxkKFdpZGdldCopOwotCisgICAgCiAgICAgLy8gSWYgdGhlIHNjcm9s
bCB2aWV3IGRvZXMgbm90IHVzZSBhIG5hdGl2ZSB3aWRnZXQsIHRoZW4gaXQgd2lsbCBoYXZlIGNy
b3NzLXBsYXRmb3JtIFNjcm9sbGJhcnMuICBUaGVzZSBtZXRob2RzCiAgICAgLy8gY2FuIGJlIHVz
ZWQgdG8gb2J0YWluIHRob3NlIHNjcm9sbGJhcnMuCiAgICAgU2Nyb2xsYmFyKiBob3Jpem9udGFs
U2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpOyB9
CkBAIC0xMjAsOCArMTIwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3
UmVjdXJzaXZlbHkoY29uc3QgSW50UmVjdCYpOwogCiAgICAgLy8gVGhpcyBnaXZlcyB1cyBhIG1l
YW5zIG9mIGJsb2NraW5nIHBhaW50aW5nIG9uIG91ciBzY3JvbGxiYXJzIHVudGlsIHRoZSBmaXJz
dCBsYXlvdXQgaGFzIG9jY3VycmVkLgotICAgIHZvaWQgc3VwcHJlc3NTY3JvbGxiYXJzKGJvb2wg
c3VwcHJlc3NlZCwgYm9vbCByZXBhaW50T25VbnN1cHByZXNzID0gZmFsc2UpOwotICAgICAKKyAg
ICB2b2lkIHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wgc3VwcHJlc3NlZCwgYm9vbCByZXBh
aW50T25VbnN1cHByZXNzID0gZmFsc2UpOworICAgIGJvb2wgc2Nyb2xsYmFyc1N1cHByZXNzZWQo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhcnNTdXBwcmVzc2VkOyB9CisKICAgICAvLyBFdmVu
dCBjb29yZGluYXRlcyBhcmUgYXNzdW1lZCB0byBiZSBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBv
ZiBhIHdpbmRvdyB0aGF0IGNvbnRhaW5zCiAgICAgLy8gdGhlIGVudGlyZSB3aWRnZXQgaGllcmFy
Y2h5LiBJdCBpcyB1cCB0byB0aGUgcGxhdGZvcm0gdG8gZGVjaWRlIHdoYXQgdGhlIHByZWNpc2Ug
ZGVmaW5pdGlvbgogICAgIC8vIG9mIGNvbnRhaW5pbmcgd2luZG93IGlzLiAoRm9yIGV4YW1wbGUg
b24gTWFjIGl0IGlzIHRoZSBjb250YWluaW5nIE5TV2luZG93LikKQEAgLTEzMyw2ICsxMzQsMTMg
QEAgcHVibGljOgogICAgIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGFuc3dl
ciB3aGV0aGVyIG9yIG5vdCB0aGUgc2Nyb2xsIHZpZXcgaXMgY3VycmVudGx5IHZpc2libGUuICBB
bmltYXRpb25zIGFuZCBwYWludGluZyB1cGRhdGVzIGNhbiBiZSBzdXNwZW5kZWQgaWYKICAgICAv
LyB3ZSBrbm93IHRoYXQgd2UgYXJlIGVpdGhlciBub3QgaW4gYSB3aW5kb3cgcmlnaHQgbm93IG9y
IGlmIHRoYXQgd2luZG93IGlzIG5vdCB2aXNpYmxlLgogICAgIGJvb2wgaXNPZmZzY3JlZW4oKSBj
b25zdDsKKyAgICAKKyAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHRvIGVuYWJsZSBzY3Jv
bGxiYXJzIHRvIGF2b2lkIHdpbmRvdyByZXNpemVyIGNvbnRyb2xzIHRoYXQgb3ZlcmxhcCB0aGUg
c2Nyb2xsIHZpZXcuICBUaGlzIGhhcHBlbnMgb24gTWFjCisgICAgLy8gZm9yIGV4YW1wbGUuCisg
ICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50
UmVjdCgpOyB9CisgICAgYm9vbCByZXNpemVyT3ZlcmxhcHNDb250ZW50KCkgY29uc3Q7CisgICAg
dm9pZCBhZGp1c3RTY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyQ291bnQoaW50IG92ZXJsYXBEZWx0
YSk7CisgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChTY3JvbGxWaWV3Kik7IC8vIE92ZXJyaWRk
ZW4gdG8gdXBkYXRlIHRoZSBvdmVybGFwcGluZyBzY3JvbGxiYXIgY291bnQuCiAKICAgICAvLyBG
b3IgcGxhdGZvcm1zIHRoYXQgbmVlZCB0byBoaXQgdGVzdCBzY3JvbGxiYXJzIGZyb20gd2l0aGlu
IHRoZSBlbmdpbmUncyBldmVudCBoYW5kbGVycyAobGlrZSBXaW4zMikuCiAgICAgU2Nyb2xsYmFy
KiBzY3JvbGxiYXJVbmRlck1vdXNlKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVu
dCk7CkBAIC0xODQsNiArMTkyLDkgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fc2Nyb2xsT2Zm
c2V0OyAvLyBGSVhNRTogV291bGQgcmF0aGVyIHN0b3JlIHRoaXMgYXMgYSBwb3NpdGlvbiwgYnV0
IHdlIHdpbGwgd2FpdCB0byBtYWtlIHRoaXMgY2hhbmdlIHVudGlsIG1vcmUgY29kZSBpcyBzaGFy
ZWQuCiAgICAgSW50U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKIAorICAgIGludCBtX3Njcm9sbGJhcnNB
dm9pZGluZ1Jlc2l6ZXI7CisgICAgYm9vbCBtX3Njcm9sbGJhcnNTdXBwcmVzc2VkOworCiAgICAg
dm9pZCBpbml0KCk7CiAgICAgCiAgICAgdm9pZCBwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCopOwpA
QCAtMTk0LDcgKzIwNSw4IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBwbGF0Zm9ybVZpc2libGVD
b250ZW50UmVjdChib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdDsKICAgICBJbnRTaXplIHBs
YXRmb3JtQ29udGVudHNTaXplKCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNldENvbnRlbnRz
U2l6ZSgpOwotCisgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wg
cmVwYWludE9uVW5zdXBwcmVzcyk7CisgICAgCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVk
IF9fT0JKQ19fCiBwdWJsaWM6CiAgICAgTlNWaWV3KiBkb2N1bWVudFZpZXcoKSBjb25zdDsKQEAg
LTIwMywxMCArMjE1LDEzIEBAIHByaXZhdGU6CiAgICAgTlNTY3JvbGxWaWV3PFdlYkNvcmVGcmFt
ZVNjcm9sbFZpZXc+KiBzY3JvbGxWaWV3KCkgY29uc3Q7CiAjZW5kaWYKIAorLy8gRklYTUU6IFNj
cm9sbFZpZXdQcml2YXRlIHdpbGwgZXZlbnR1YWxseSBiZSBjb21wbGV0ZWx5IGdvbmUuICBJdCdz
IGFscmVhZHkgZ29uZSBvbiBNYWMuCisjaWYgIVBMQVRGT1JNKE1BQykKICAgICBjbGFzcyBTY3Jv
bGxWaWV3UHJpdmF0ZTsKICAgICBTY3JvbGxWaWV3UHJpdmF0ZSogbV9kYXRhOwogCiAgICAgZnJp
ZW5kIGNsYXNzIFNjcm9sbFZpZXdQcml2YXRlOyAvLyBGSVhNRTogVGVtcG9yYXJ5LgorI2VuZGlm
CiAgICAgCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdYKQogcHVibGljOgpAQCAt
MjI1LDIxICsyNDAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFycyhjb25z
dCBJbnRTaXplJiBkZXNpcmVkT2Zmc2V0KSB7fSAvLyBGSVhNRTogVGVtcG9yYXJ5LgogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShNQUMpCi1w
dWJsaWM6Ci0gICAgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpOwotICAgIGJvb2wgcmVzaXpl
ck92ZXJsYXBzQ29udGVudCgpIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0T3ZlcmxhcHBpbmdTY3Jv
bGxiYXJDb3VudChpbnQgb3ZlcmxhcERlbHRhKTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFyZW50KFNjcm9sbFZpZXcqKTsKLSNlbHNlCi1wdWJsaWM6Ci0gICAgSW50UmVjdCB3
aW5kb3dSZXNpemVyUmVjdCgpIHsgcmV0dXJuIEludFJlY3QoKTsgfQotICAgIGJvb2wgcmVzaXpl
ck92ZXJsYXBzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdm9pZCBhZGp1
c3RPdmVybGFwcGluZ1Njcm9sbGJhckNvdW50KGludCBvdmVybGFwRGVsdGEpIHt9Ci0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKFdJTikKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdGhlbWVDaGFu
Z2VkKCk7CkBAIC0yNTcsNyArMjU3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluY3JlbWVudE5h
dGl2ZVdpZGdldENvdW50KCk7CiAgICAgdm9pZCBkZWNyZW1lbnROYXRpdmVXaWRnZXRDb3VudCgp
OwogICAgIGJvb2wgaGFzTmF0aXZlV2lkZ2V0cygpIGNvbnN0OwotICAgIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbGJhcnMoKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpJbmRleDogcGxhdGZv
cm0vU2Nyb2xsYmFyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCShy
ZXZpc2lvbiAzNzAxMikKKysrIHBsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIFNjcm9sbGJhcjo6c2V0RnJhbWVSZWN0KGNvbnN0IElu
dFJlCiAgICAgLy8gR2V0IG91ciB3aW5kb3cgcmVzaXplciByZWN0IGFuZCBzZWUgaWYgd2Ugb3Zl
cmxhcC4gIEFkanVzdCB0byBhdm9pZCB0aGUgb3ZlcmxhcAogICAgIC8vIGlmIG5lY2Vzc2FyeS4K
ICAgICBJbnRSZWN0IGFkanVzdGVkUmVjdChyZWN0KTsKLSAgICBpZiAocGFyZW50KCkgJiYgcGFy
ZW50KCktPmlzRnJhbWVWaWV3KCkpIHsKKyAgICBpZiAocGFyZW50KCkpIHsKICAgICAgICAgYm9v
bCBvdmVybGFwc1Jlc2l6ZXIgPSBmYWxzZTsKICAgICAgICAgU2Nyb2xsVmlldyogdmlldyA9IHBh
cmVudCgpOwogICAgICAgICBJbnRSZWN0IHJlc2l6ZXJSZWN0ID0gdmlldy0+Y29udmVydEZyb21D
b250YWluaW5nV2luZG93KHZpZXctPndpbmRvd1Jlc2l6ZXJSZWN0KCkpOwpAQCAtMzk2LDcgKzM5
Niw3IEBAIHZvaWQgU2Nyb2xsYmFyOjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmUKIAogICAgICAg
ICBpZiAob3ZlcmxhcHNSZXNpemVyICE9IG1fb3ZlcmxhcHNSZXNpemVyKSB7CiAgICAgICAgICAg
ICBtX292ZXJsYXBzUmVzaXplciA9IG92ZXJsYXBzUmVzaXplcjsKLSAgICAgICAgICAgIHZpZXct
PmFkanVzdE92ZXJsYXBwaW5nU2Nyb2xsYmFyQ291bnQobV9vdmVybGFwc1Jlc2l6ZXIgPyAxIDog
LTEpOworICAgICAgICAgICAgdmlldy0+YWRqdXN0U2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplckNv
dW50KG1fb3ZlcmxhcHNSZXNpemVyID8gMSA6IC0xKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
NDA1LDggKzQwNSw4IEBAIHZvaWQgU2Nyb2xsYmFyOjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmUK
IAogdm9pZCBTY3JvbGxiYXI6OnNldFBhcmVudChTY3JvbGxWaWV3KiBwYXJlbnRWaWV3KQogewot
ICAgIGlmICghcGFyZW50VmlldyAmJiBtX292ZXJsYXBzUmVzaXplciAmJiBwYXJlbnQoKSAmJiBw
YXJlbnQoKS0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgcGFyZW50KCktPmFkanVzdE92ZXJsYXBw
aW5nU2Nyb2xsYmFyQ291bnQoLTEpOworICAgIGlmICghcGFyZW50VmlldyAmJiBtX292ZXJsYXBz
UmVzaXplciAmJiBwYXJlbnQoKSkKKyAgICAgICAgcGFyZW50KCktPmFkanVzdFNjcm9sbGJhcnNB
dm9pZGluZ1Jlc2l6ZXJDb3VudCgtMSk7CiAgICAgV2lkZ2V0OjpzZXRQYXJlbnQocGFyZW50Vmll
dyk7CiB9CiAKSW5kZXg6IHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAJKHJldmlzaW9uIDM3MDEyKQorKysg
cGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2
OSw2IEBAIGNsYXNzIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlIDogcHUKIHB1YmxpYzoK
ICAgICBTY3JvbGxWaWV3UHJpdmF0ZShTY3JvbGxWaWV3KiBfdmlldykKICAgICAgICAgOiB2aWV3
KF92aWV3KQotICAgICAgICAsIHNjcm9sbGJhcnNTdXBwcmVzc2VkKGZhbHNlKQogICAgICAgICAs
IGluVXBkYXRlU2Nyb2xsYmFycyhmYWxzZSkKICAgICAgICAgLCBob3Jpem9udGFsQWRqdXN0bWVu
dCgwKQogICAgICAgICAsIHZlcnRpY2FsQWRqdXN0bWVudCgwKQpAQCAtMTAzLDcgKzEwMiw2IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50
KiwgZ3BvaW50ZXIpOwogCiAgICAgU2Nyb2xsVmlldyogdmlldzsKLSAgICBib29sIHNjcm9sbGJh
cnNTdXBwcmVzc2VkOwogICAgIEludFNpemUgdmlld1BvcnRTaXplOwogICAgIGJvb2wgaW5VcGRh
dGVTY3JvbGxiYXJzOwogICAgIEhhc2hTZXQ8V2lkZ2V0Kj4gY2hpbGRyZW47CkBAIC0yMDEsNyAr
MTk5LDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJpdmF0ZTo6YWRqdQogICAgICAg
ICByZXR1cm47CiAgICAgdGhhdC0+dmlldy0+bV9zY3JvbGxPZmZzZXQgPSBuZXdPZmZzZXQ7CiAK
LSAgICBpZiAodGhhdC0+c2Nyb2xsYmFyc1N1cHByZXNzZWQpCisgICAgaWYgKHRoYXQtPnZpZXct
PnNjcm9sbGJhcnNTdXBwcmVzc2VkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRoYXQtPnNj
cm9sbEJhY2tpbmdTdG9yZShzY3JvbGxEZWx0YSk7CkBAIC0zMzEsMTMgKzMyOSw2IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QKICAgICB1cGRhdGVTY3JvbGxiYXJz
KEludFNpemUobmV3U2Nyb2xsUG9zaXRpb24ueCgpLCBuZXdTY3JvbGxQb3NpdGlvbi55KCkpKTsK
IH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzdXBwcmVzc1Njcm9sbGJhcnMoYm9vbCBzdXBwcmVzc2Vk
LCBib29sIHJlcGFpbnRPblN1cHByZXNzKQotewotICAgIG1fZGF0YS0+c2Nyb2xsYmFyc1N1cHBy
ZXNzZWQgPSBzdXBwcmVzc2VkOwotICAgIGlmIChyZXBhaW50T25TdXBwcmVzcykKLSAgICAgICAg
dXBkYXRlU2Nyb2xsYmFycyhtX3Njcm9sbE9mZnNldCk7Ci19Ci0KIHZvaWQgU2Nyb2xsVmlldzo6
c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIG5ld0dlb21ldHJ5KQogewogICAgIEFTU0VSVChp
c0ZyYW1lVmlldygpKTsKQEAgLTQxMCw3ICs0MDEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0
ZVNjcm9sbGJhcnMoY29uc3QgCiAgICAgICAgIGJvb2wgc2Nyb2xsc1ZlcnRpY2FsbHk7CiAgICAg
ICAgIGJvb2wgc2Nyb2xsc0hvcml6b250YWxseTsKIAotICAgICAgICBpZiAoIW1fZGF0YS0+c2Ny
b2xsYmFyc1N1cHByZXNzZWQgJiYgKGhTY3JvbGwgPT0gU2Nyb2xsYmFyQXV0byB8fCB2U2Nyb2xs
ID09IFNjcm9sbGJhckF1dG8pKSB7CisgICAgICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3Nl
ZCAmJiAoaFNjcm9sbCA9PSBTY3JvbGxiYXJBdXRvIHx8IHZTY3JvbGwgPT0gU2Nyb2xsYmFyQXV0
bykpIHsKICAgICAgICAgICAgIC8vIERvIGEgbGF5b3V0IGlmIHBlbmRpbmcgYmVmb3JlIGNoZWNr
aW5nIGlmIHNjcm9sbGJhcnMgYXJlIG5lZWRlZC4KICAgICAgICAgICAgIGlmIChoYXNWZXJ0aWNh
bFNjcm9sbGJhciAhPSBvbGRIYXNWZXJ0aWNhbCB8fCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyICE9
IG9sZEhhc0hvcml6b250YWwpCiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4odGhpcyktPmxheW91dCgpOwpAQCAtNDY4LDE1ICs0NTksMTUgQEAgdm9pZCBTY3JvbGxWaWV3
Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aWR0aCgpIC0gKG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFy
LT53aWR0aCgpIDogMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faG9y
aXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpOwogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxi
YXItPnNldEZyYW1lUmVjdChoQmFyUmVjdCk7Ci0gICAgICAgIGlmICghbV9kYXRhLT5zY3JvbGxi
YXJzU3VwcHJlc3NlZCAmJiBvbGRSZWN0ICE9IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkpCisgICAgICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiBvbGRSZWN0ICE9
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpCiAgICAgICAgICAgICBtX2hvcml6
b250YWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAotICAgICAgICBpZiAobV9kYXRhLT5zY3Jv
bGxiYXJzU3VwcHJlc3NlZCkKKyAgICAgICAgaWYgKG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpCiAg
ICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0aW9u
KHRydWUpOwogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFN0ZXBzKExJTkVfU1RF
UCwgcGFnZVN0ZXApOwogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFByb3BvcnRp
b24oY2xpZW50V2lkdGgsIGNvbnRlbnRzV2lkdGgoKSk7CiAgICAgICAgIG1faG9yaXpvbnRhbFNj
cm9sbGJhci0+c2V0VmFsdWUoc2Nyb2xsLndpZHRoKCkpOwotICAgICAgICBpZiAobV9kYXRhLT5z
Y3JvbGxiYXJzU3VwcHJlc3NlZCkKKyAgICAgICAgaWYgKG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQp
CiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0
aW9uKGZhbHNlKTsKICAgICB9CiAKQEAgLTUwMywxNSArNDk0LDE1IEBAIHZvaWQgU2Nyb2xsVmll
dzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVpZ2h0KCkgLSAobV9ob3Jpem9udGFsU2Nyb2xsYmFyID8gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSA6IDApKTsKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9s
bGJhci0+c2V0RnJhbWVSZWN0KHZCYXJSZWN0KTsKLSAgICAgICAgaWYgKCFtX2RhdGEtPnNjcm9s
bGJhcnNTdXBwcmVzc2VkICYmIG9sZFJlY3QgIT0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkpCisgICAgICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiBvbGRSZWN0ICE9
IG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKQogICAgICAgICAgICAgbV92ZXJ0aWNh
bFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwogCi0gICAgICAgIGlmIChtX2RhdGEtPnNjcm9sbGJh
cnNTdXBwcmVzc2VkKQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAg
ICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0aW9uKHRydWUp
OwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRTdGVwcyhMSU5FX1NURVAsIHBhZ2VT
dGVwKTsKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+c2V0UHJvcG9ydGlvbihjbGllbnRI
ZWlnaHQsIGNvbnRlbnRzSGVpZ2h0KCkpOwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5z
ZXRWYWx1ZShzY3JvbGwuaGVpZ2h0KCkpOwotICAgICAgICBpZiAobV9kYXRhLT5zY3JvbGxiYXJz
U3VwcHJlc3NlZCkKKyAgICAgICAgaWYgKG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpCiAgICAgICAg
ICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRTdXBwcmVzc0ludmFsaWRhdGlvbihmYWxzZSk7
CiAgICAgfQogCkBAIC01NjYsNyArNTU3LDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpwYWludChHcmFw
aGljc0NvbnRleHQqIAogICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKIAogICAgIC8vIE5vdyBwYWlu
dCB0aGUgc2Nyb2xsYmFycy4KLSAgICBpZiAoIW1fZGF0YS0+c2Nyb2xsYmFyc1N1cHByZXNzZWQg
JiYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciB8fCBtX3ZlcnRpY2FsU2Nyb2xsYmFyKSkgeworICAg
IGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8
IG1fdmVydGljYWxTY3JvbGxiYXIpKSB7CiAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICAg
ICAgSW50UmVjdCBzY3JvbGxWaWV3RGlydHlSZWN0ID0gcmVjdDsKICAgICAgICAgc2Nyb2xsVmll
d0RpcnR5UmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwpJbmRleDogcGxhdGZvcm0vbWFjL1Nj
cm9sbFZpZXdNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMu
bW0JKHJldmlzaW9uIDM3MDEyKQorKysgcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI4LDExICsyOCw4IEBACiAKICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9u
cy5oIgogI2ltcG9ydCAiRmxvYXRSZWN0LmgiCi0jaW1wb3J0ICJGcmFtZS5oIgotI2ltcG9ydCAi
RnJhbWVWaWV3LmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCi0j
aW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJXZWJDb3JlRnJhbWVWaWV3LmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CkBAIC00NCwyNSArNDEsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJpdmF0
ZSB7Ci1wdWJsaWM6Ci0gICAgU2Nyb2xsVmlld1ByaXZhdGUoKQotICAgICAgICA6IG1fc2Nyb2xs
YmFyc0F2b2lkaW5nUmVzaXplcigwKQotICAgIHsKLSAgICB9Ci0KLSAgICBpbnQgbV9zY3JvbGxi
YXJzQXZvaWRpbmdSZXNpemVyOwotfTsKLQogU2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCi0gICAg
OiBtX2RhdGEobmV3IFNjcm9sbFZpZXdQcml2YXRlKQogewogICAgIGluaXQoKTsKIH0KIAogU2Ny
b2xsVmlldzo6flNjcm9sbFZpZXcoKQogewotICAgIGRlbGV0ZSBtX2RhdGE7CiB9CiAKIGlubGlu
ZSBOU1Njcm9sbFZpZXc8V2ViQ29yZUZyYW1lU2Nyb2xsVmlldz4gKlNjcm9sbFZpZXc6OnNjcm9s
bFZpZXcoKSBjb25zdApAQCAtMTQ3LDE5ICsxMzIsMTkgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNldENvbnRlbnRzU2l6ZQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAK
LXZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9s
bFBvaW50KQordm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhcnNTdXBwcmVzc2Vk
KGJvb2wgcmVwYWludE9uVW5zdXBwcmVzcykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Ci0gICAgTlNQb2ludCB0ZW1wUG9pbnQgPSB7IG1heCgwLCBzY3JvbGxQb2ludC54KCkp
LCBtYXgoMCwgc2Nyb2xsUG9pbnQueSgpKSB9OyAvLyBEb24ndCB1c2UgTlNNYWtlUG9pbnQgdG8g
d29yayBhcm91bmQgNDIxMzMxNC4KLSAgICBbZG9jdW1lbnRWaWV3KCkgc2Nyb2xsUG9pbnQ6dGVt
cFBvaW50XTsKKyAgICBbc2Nyb2xsVmlldygpIHNldFNjcm9sbEJhcnNTdXBwcmVzc2VkOm1fc2Ny
b2xsYmFyc1N1cHByZXNzZWQKKyAgICAgICAgICAgICAgICAgICAgICByZXBhaW50T25VbnN1cHBy
ZXNzOnJlcGFpbnRPblVuc3VwcHJlc3NdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6c3VwcHJlc3NTY3JvbGxiYXJzKGJvb2wgc3VwcHJlc3Nl
ZCwgYm9vbCByZXBhaW50T25VbnN1cHByZXNzKQordm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9pbnQpCiB7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwotICAgIFtzY3JvbGxWaWV3KCkgc2V0U2Nyb2xsQmFyc1N1cHByZXNz
ZWQ6c3VwcHJlc3NlZAotICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnRPblVuc3VwcHJlc3M6
cmVwYWludE9uVW5zdXBwcmVzc107CisgICAgTlNQb2ludCB0ZW1wUG9pbnQgPSB7IG1heCgwLCBz
Y3JvbGxQb2ludC54KCkpLCBtYXgoMCwgc2Nyb2xsUG9pbnQueSgpKSB9OyAvLyBEb24ndCB1c2Ug
TlNNYWtlUG9pbnQgdG8gd29yayBhcm91bmQgNDIxMzMxNC4KKyAgICBbZG9jdW1lbnRWaWV3KCkg
c2Nyb2xsUG9pbnQ6dGVtcFBvaW50XTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
fQogCkBAIC0yNDUsMzMgKzIzMCw0IEBAIHZvaWQgU2Nyb2xsVmlldzo6d2hlZWxFdmVudChQbGF0
Zm9ybVdoZWUKICAgICAvLyBEbyBub3RoaW5nLiBOU1Njcm9sbFZpZXcgaGFuZGxlcyBkb2luZyB0
aGUgc2Nyb2xsIGZvciB1cy4KIH0KIAotSW50UmVjdCBTY3JvbGxWaWV3Ojp3aW5kb3dSZXNpemVy
UmVjdCgpCi17Ci0gICAgQVNTRVJUKGlzRnJhbWVWaWV3KCkpOwotICAgIGNvbnN0IEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4odGhpcyk7Ci0gICAg
UGFnZSogcGFnZSA9IGZyYW1lVmlldy0+ZnJhbWUoKSA/IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFn
ZSgpIDogMDsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAg
cmV0dXJuIHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZXNpemVyUmVjdCgpOwotfQotCi1ib29sIFNj
cm9sbFZpZXc6OnJlc2l6ZXJPdmVybGFwc0NvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiAh
bV9kYXRhLT5tX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXI7Ci19Ci0KLXZvaWQgU2Nyb2xsVmll
dzo6YWRqdXN0T3ZlcmxhcHBpbmdTY3JvbGxiYXJDb3VudChpbnQgb3ZlcmxhcERlbHRhKQotewot
ICAgIG1fZGF0YS0+bV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICs9IG92ZXJsYXBEZWx0YTsK
LSAgICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgIHN0
YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKS0+YWRqdXN0T3ZlcmxhcHBpbmdTY3JvbGxi
YXJDb3VudChvdmVybGFwRGVsdGEpOwotfQotCi12b2lkIFNjcm9sbFZpZXc6OnNldFBhcmVudChT
Y3JvbGxWaWV3KiBwYXJlbnRWaWV3KQotewotICAgIGlmICghcGFyZW50VmlldyAmJiBtX2RhdGEt
Pm1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNG
cmFtZVZpZXcoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5h
ZGp1c3RPdmVybGFwcGluZ1Njcm9sbGJhckNvdW50KGZhbHNlKTsKLSAgICBXaWRnZXQ6OnNldFBh
cmVudChwYXJlbnRWaWV3KTsKLX0KLQogfQpJbmRleDogcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwCShyZXZpc2lv
biAzNzAxMikKKysrIHBsYXRmb3JtL3F0L1Njcm9sbFZpZXdRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY4LDkgKzY4LDcgQEAgcHVibGljOgogICAgIFNjcm9sbFZpZXdQcml2YXRlKFNjcm9sbFZp
ZXcqIHZpZXcpCiAgICAgICA6IG1fdmlldyh2aWV3KQogICAgICAgLCBtX3BsYXRmb3JtV2lkZ2V0
cygwKQotICAgICAgLCBtX3Njcm9sbGJhcnNTdXBwcmVzc2VkKGZhbHNlKQogICAgICAgLCBtX2lu
VXBkYXRlU2Nyb2xsYmFycyhmYWxzZSkKLSAgICAgICwgbV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNp
emVyKDApCiAgICAgewogICAgIH0KIApAQCAtOTEsOSArODksNyBAQCBwdWJsaWM6CiAKICAgICBT
Y3JvbGxWaWV3KiBtX3ZpZXc7CiAgICAgaW50ICBtX3BsYXRmb3JtV2lkZ2V0czsKLSAgICBib29s
IG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQ7CiAgICAgYm9vbCBtX2luVXBkYXRlU2Nyb2xsYmFyczsK
LSAgICBpbnQgbV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyOwogfTsKIAogdm9pZCBTY3JvbGxW
aWV3OjpTY3JvbGxWaWV3UHJpdmF0ZTo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihib29sIGhh
c0JhcikKQEAgLTEzMyw3ICsxMjksNyBAQCB2b2lkIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2
YXRlOjp2YWx1CiAgICAgICAgIHJldHVybjsKICAgICBtX3ZpZXctPm1fc2Nyb2xsT2Zmc2V0ID0g
bmV3T2Zmc2V0OwogCi0gICAgaWYgKG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpCisgICAgaWYgKG1f
dmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2Ny
b2xsQmFja2luZ1N0b3JlKHNjcm9sbERlbHRhKTsKQEAgLTI0Miw0MyArMjM4LDYgQEAgdm9pZCBT
Y3JvbGxWaWV3OjpmcmFtZVJlY3RzQ2hhbmdlZCgpIGNvbgogICAgIEhhc2hTZXQ8V2lkZ2V0Kj46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fY2hpbGRyZW4uZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0
PFdpZGdldCo+Ojpjb25zdF9pdGVyYXRvciBjdXJyZW50ID0gbV9jaGlsZHJlbi5iZWdpbigpOyBj
dXJyZW50ICE9IGVuZDsgKytjdXJyZW50KQogICAgICAgICAoKmN1cnJlbnQpLT5mcmFtZVJlY3Rz
Q2hhbmdlZCgpOwotCi0gICAgY29uc3RfY2FzdDxTY3JvbGxWaWV3ICo+KHRoaXMpLT5pbnZhbGlk
YXRlU2Nyb2xsYmFycygpOwotfQotCi12b2lkIFNjcm9sbFZpZXc6OnN1cHByZXNzU2Nyb2xsYmFy
cyhib29sIHN1cHByZXNzZWQsIGJvb2wgcmVwYWludE9uU3VwcHJlc3MpCi17Ci0gICAgbV9kYXRh
LT5tX3Njcm9sbGJhcnNTdXBwcmVzc2VkID0gc3VwcHJlc3NlZDsKLSAgICBpZiAocmVwYWludE9u
U3VwcHJlc3MgJiYgIXN1cHByZXNzZWQpCi0gICAgICAgIGludmFsaWRhdGVTY3JvbGxiYXJzKCk7
Ci19Ci0KLXZvaWQgU2Nyb2xsVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhcnMoKQotewotICAgIGlm
IChtX2hvcml6b250YWxTY3JvbGxiYXIpCi0gICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+
aW52YWxpZGF0ZSgpOwotICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyKQotICAgICAgICBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7Ci0KLQotICAgIC8vIEludmFsaWRhdGUgdGhl
IHNjcm9sbCBjb3JuZXIgdG9vCi0gICAgSW50UmVjdCBoQ29ybmVyOwotICAgIGlmIChtX2hvcml6
b250YWxTY3JvbGxiYXIgJiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgo
KSA+IDApIHsKLSAgICAgICAgaENvcm5lciA9IEludFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT53aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9u
dGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCgp
IC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpOwotICAgICAgIGFkZFRvRGlydHlS
ZWdpb24oY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhoQ29ybmVyKSk7Ci0gICAgfQotCi0gICAg
aWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0KCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFy
LT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgSW50UmVjdCB2Q29ybmVyKHdpZHRoKCkgLSBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAgICBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgbV92ZXJ0aWNh
bFNjcm9sbGJhci0+d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KCkgLSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSk7Ci0gICAgICAgIGlmICh2Q29ybmVyICE9IGhD
b3JuZXIpCi0gICAgICAgICAgICBhZGRUb0RpcnR5UmVnaW9uKGNvbnZlcnRUb0NvbnRhaW5pbmdX
aW5kb3codkNvcm5lcikpOwotICAgIH0KIH0KIAogYm9vbCBTY3JvbGxWaWV3Ojppc09mZnNjcmVl
bigpIGNvbnN0CkBAIC0zMTMsNyArMjcyLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3Jv
bGxiYXJzKGNvbnN0IAogICAgICAgICBib29sIHNjcm9sbHNWZXJ0aWNhbGx5OwogICAgICAgICBi
b29sIHNjcm9sbHNIb3Jpem9udGFsbHk7CiAKLSAgICAgICAgaWYgKCFtX2RhdGEtPm1fc2Nyb2xs
YmFyc1N1cHByZXNzZWQgJiYgKGhTY3JvbGwgPT0gU2Nyb2xsYmFyQXV0byB8fCB2U2Nyb2xsID09
IFNjcm9sbGJhckF1dG8pKSB7CisgICAgICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAm
JiAoaFNjcm9sbCA9PSBTY3JvbGxiYXJBdXRvIHx8IHZTY3JvbGwgPT0gU2Nyb2xsYmFyQXV0bykp
IHsKICAgICAgICAgICAgIC8vIERvIGEgbGF5b3V0IGlmIHBlbmRpbmcgYmVmb3JlIGNoZWNraW5n
IGlmIHNjcm9sbGJhcnMgYXJlIG5lZWRlZC4KICAgICAgICAgICAgIGlmIChoYXNWZXJ0aWNhbFNj
cm9sbGJhciAhPSBvbGRIYXNWZXJ0aWNhbCB8fCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyICE9IG9s
ZEhhc0hvcml6b250YWwpCiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
dGhpcyktPmxheW91dCgpOwpAQCAtMzgyLDE1ICszNDEsMTUgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1
cGRhdGVTY3JvbGxiYXJzKGNvbnN0IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aWR0aCgpIC0gKG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53
aWR0aCgpIDogc2Nyb2xsYmFyT2Zmc2V0LngoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpOwogICAgICAgICBtX2hv
cml6b250YWxTY3JvbGxiYXItPnNldEZyYW1lUmVjdChoQmFyUmVjdCk7Ci0gICAgICAgIGlmICgh
bV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2VkICYmIG9sZFJlY3QgIT0gbV9ob3Jpem9udGFs
U2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSkKKyAgICAgICAgaWYgKCFtX3Njcm9sbGJhcnNTdXBwcmVz
c2VkICYmIG9sZFJlY3QgIT0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSkKICAg
ICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwogCi0gICAgICAg
IGlmIChtX2RhdGEtPm1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpCisgICAgICAgIGlmIChtX3Njcm9s
bGJhcnNTdXBwcmVzc2VkKQogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5zZXRT
dXBwcmVzc0ludmFsaWRhdGlvbih0cnVlKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT5zZXRTdGVwcyhMSU5FX1NURVAsIHBhZ2VTdGVwKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT5zZXRQcm9wb3J0aW9uKGNsaWVudFdpZHRoLCBjb250ZW50c1dpZHRoKCkpOwogICAg
ICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFZhbHVlKHNjcm9sbC53aWR0aCgpKTsKLSAg
ICAgICAgaWYgKG1fZGF0YS0+bV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKKyAgICAgICAgaWYgKG1f
c2Nyb2xsYmFyc1N1cHByZXNzZWQpCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXIt
PnNldFN1cHByZXNzSW52YWxpZGF0aW9uKGZhbHNlKTsgCiAgICAgfSAKIApAQCAtNDA1LDE1ICsz
NjQsMTUgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIChtX2hvcml6
b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpIDogc2Nyb2xs
YmFyT2Zmc2V0LnkoKSkpOwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRGcmFtZVJl
Y3QodkJhclJlY3QpOwotICAgICAgICBpZiAoIW1fZGF0YS0+bV9zY3JvbGxiYXJzU3VwcHJlc3Nl
ZCAmJiBvbGRSZWN0ICE9IG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKQorICAgICAg
ICBpZiAoIW1fc2Nyb2xsYmFyc1N1cHByZXNzZWQgJiYgb2xkUmVjdCAhPSBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5mcmFtZVJlY3QoKSkKICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPmlu
dmFsaWRhdGUoKTsKIAotICAgICAgICBpZiAobV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2Vk
KQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAgICAgICAgIG1fdmVy
dGljYWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0aW9uKHRydWUpOwogICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRTdGVwcyhMSU5FX1NURVAsIHBhZ2VTdGVwKTsKICAgICAg
ICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+c2V0UHJvcG9ydGlvbihjbGllbnRIZWlnaHQsIGNvbnRl
bnRzSGVpZ2h0KCkpOwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRWYWx1ZShzY3Jv
bGwuaGVpZ2h0KCkpOwotICAgICAgICBpZiAobV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2Vk
KQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAgICAgICAgIG1fdmVy
dGljYWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0aW9uKGZhbHNlKTsKICAgICB9CiAK
QEAgLTQ5NCw3ICs0NTMsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgLy8gTm93IHBhaW50IHRoZSBzY3Jv
bGxiYXJzLgotICAgIGlmICghbV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2VkICYmIChtX2hv
cml6b250YWxTY3JvbGxiYXIgfHwgbV92ZXJ0aWNhbFNjcm9sbGJhcikpIHsKKyAgICBpZiAoIW1f
c2Nyb2xsYmFyc1N1cHByZXNzZWQgJiYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciB8fCBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyKSkgewogICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiAgICAgICAgIEludFJl
Y3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJl
Y3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKQEAgLTU3MCw0NCArNTI5LDYgQEAgYm9vbCBTY3Jv
bGxWaWV3OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
SW50UmVjdCBTY3JvbGxWaWV3Ojp3aW5kb3dSZXNpemVyUmVjdCgpCi17Ci0gICAgQVNTRVJUKGlz
RnJhbWVWaWV3KCkpOwotICAgIGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRnJhbWVWaWV3Kj4odGhpcyk7Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lVmlldy0+
ZnJhbWUoKSA/IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFnZSgpIDogMDsKLSAgICBpZiAoIXBhZ2Up
Ci0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLT53
aW5kb3dSZXNpemVyUmVjdCgpOwotfQotCi1ib29sIFNjcm9sbFZpZXc6OnJlc2l6ZXJPdmVybGFw
c0NvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiAhbV9kYXRhLT5tX3Njcm9sbGJhcnNBdm9p
ZGluZ1Jlc2l6ZXI7Ci19Ci0KLXZvaWQgU2Nyb2xsVmlldzo6YWRqdXN0T3ZlcmxhcHBpbmdTY3Jv
bGxiYXJDb3VudChpbnQgb3ZlcmxhcERlbHRhKQotewotICAgIGludCBvbGRDb3VudCA9IG1fZGF0
YS0+bV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyOwotICAgIG1fZGF0YS0+bV9zY3JvbGxiYXJz
QXZvaWRpbmdSZXNpemVyICs9IG92ZXJsYXBEZWx0YTsKLSAgICBpZiAocGFyZW50KCkgJiYgcGFy
ZW50KCktPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBh
cmVudCgpKS0+YWRqdXN0T3ZlcmxhcHBpbmdTY3JvbGxiYXJDb3VudChvdmVybGFwRGVsdGEpOwot
ICAgIGVsc2UgaWYgKCFtX2RhdGEtPm1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpIHsKLSAgICAgICAg
Ly8gSWYgd2Ugd2VudCBmcm9tIG4gdG8gMCBvciBmcm9tIDAgdG8gbiBhbmQgd2UncmUgdGhlIG91
dGVybW9zdCB2aWV3LAotICAgICAgICAvLyB3ZSBuZWVkIHRvIGludmFsaWRhdGUgdGhlIHdpbmRv
d1Jlc2l6ZXJSZWN0KCksIHNpbmNlIGl0IHdpbGwgbm93IG5lZWQgdG8gcGFpbnQKLSAgICAgICAg
Ly8gZGlmZmVyZW50bHkuCi0gICAgICAgIGlmIChvbGRDb3VudCA+IDAgJiYgbV9kYXRhLT5tX3Nj
cm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIgPT0gMCB8fAotICAgICAgICAgICAgb2xkQ291bnQgPT0g
MCAmJiBtX2RhdGEtPm1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciA+IDApCi0gICAgICAgICAg
ICBpbnZhbGlkYXRlUmVjdCh3aW5kb3dSZXNpemVyUmVjdCgpKTsKLSAgICB9Ci19Ci0KLXZvaWQg
U2Nyb2xsVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudFZpZXcpCi17Ci0gICAgaWYg
KCFwYXJlbnRWaWV3ICYmIG1fZGF0YS0+bV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICYmIHBh
cmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPihwYXJlbnQoKSktPmFkanVzdE92ZXJsYXBwaW5nU2Nyb2xsYmFyQ291bnQoZmFs
c2UpOwotICAgIFdpZGdldDo6c2V0UGFyZW50KHBhcmVudFZpZXcpOwotfQotCiB2b2lkIFNjcm9s
bFZpZXc6OmFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYgY29udGFpbmluZ1dpbmRvd1Jl
Y3QpCiB7CiAgICAgQVNTRVJUKGlzRnJhbWVWaWV3KCkpOwpJbmRleDogcGxhdGZvcm0vd2luL1Nj
cm9sbFZpZXdXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL3dpbi9TY3JvbGxWaWV3V2lu
LmNwcAkocmV2aXNpb24gMzcwMTIpCisrKyBwbGF0Zm9ybS93aW4vU2Nyb2xsVmlld1dpbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDkgKzY2LDcgQEAgY2xhc3MgU2Nyb2xsVmlldzo6U2Nyb2xs
Vmlld1ByaXZhdGUgOiBwdQogcHVibGljOgogICAgIFNjcm9sbFZpZXdQcml2YXRlKFNjcm9sbFZp
ZXcqIHZpZXcpCiAgICAgICAgIDogbV92aWV3KHZpZXcpCi0gICAgICAgICwgbV9zY3JvbGxiYXJz
U3VwcHJlc3NlZChmYWxzZSkKICAgICAgICAgLCBtX2luVXBkYXRlU2Nyb2xsYmFycyhmYWxzZSkK
LSAgICAgICAgLCBtX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIoMCkKICAgICAgICAgLCBtX3Bh
blNjcm9sbEljb25Qb2ludCgwLDApCiAgICAgICAgICwgbV9kcmF3UGFuU2Nyb2xsSWNvbihmYWxz
ZSkKICAgICB7CkBAIC05MSw5ICs4OSw3IEBAIHB1YmxpYzoKIAogCiAgICAgU2Nyb2xsVmlldyog
bV92aWV3OwotICAgIGJvb2wgbV9zY3JvbGxiYXJzU3VwcHJlc3NlZDsKICAgICBib29sIG1faW5V
cGRhdGVTY3JvbGxiYXJzOwotICAgIGludCBtX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXI7CiAg
ICAgSFJHTiBtX2RpcnR5UmVnaW9uOwogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsSWNvblBvaW50
OwogICAgIGJvb2wgbV9kcmF3UGFuU2Nyb2xsSWNvbjsKQEAgLTEzOCw3ICsxMzQsNyBAQCB2b2lk
IFNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjp2YWx1CiAgICAgICAgIHJldHVybjsKICAg
ICBtX3ZpZXctPm1fc2Nyb2xsT2Zmc2V0ID0gbmV3T2Zmc2V0OwogCi0gICAgaWYgKG1fc2Nyb2xs
YmFyc1N1cHByZXNzZWQpCisgICAgaWYgKG1fdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3KS0+
ZnJhbWUoKS0+c2VuZFNjcm9sbEV2ZW50KCk7CkBAIC0yNzEsMzYgKzI2Nyw2IEBAIHZvaWQgU2Ny
b2xsVmlldzo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFIKICAgICBmcmFtZVJlY3RzQ2hhbmdlZCgp
OwogfQogCi12b2lkIFNjcm9sbFZpZXc6OnN1cHByZXNzU2Nyb2xsYmFycyhib29sIHN1cHByZXNz
ZWQsIGJvb2wgcmVwYWludE9uU3VwcHJlc3MpCi17Ci0gICAgbV9kYXRhLT5tX3Njcm9sbGJhcnNT
dXBwcmVzc2VkID0gc3VwcHJlc3NlZDsKLSAgICBpZiAocmVwYWludE9uU3VwcHJlc3MgJiYgIXN1
cHByZXNzZWQpIHsKLSAgICAgICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhcikKLSAgICAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwotICAgICAgICBpZiAobV92
ZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPmludmFs
aWRhdGUoKTsKLQotICAgICAgICAvLyBJbnZhbGlkYXRlIHRoZSBzY3JvbGwgY29ybmVyIHRvbyBv
biB1bnN1cHByZXNzLgotICAgICAgICBJbnRSZWN0IGhDb3JuZXI7Ci0gICAgICAgIGlmIChtX2hv
cml6b250YWxTY3JvbGxiYXIgJiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSA+IDApIHsKLSAgICAgICAgICAgIGhDb3JuZXIgPSBJbnRSZWN0KG1faG9yaXpvbnRhbFNj
cm9sbGJhci0+d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCgp
IC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgp
KTsKLSAgICAgICAgICAgIGludmFsaWRhdGVSZWN0KGhDb3JuZXIpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0KCkgLSBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgICAgIEludFJlY3QgdkNvcm5lcih3aWR0
aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkpOwot
ICAgICAgICAgICAgaWYgKHZDb3JuZXIgIT0gaENvcm5lcikKLSAgICAgICAgICAgICAgICBpbnZh
bGlkYXRlUmVjdCh2Q29ybmVyKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQogdm9pZCBTY3JvbGxW
aWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IEludFNpemUmIGRlc2lyZWRPZmZzZXQpCiB7CiAg
ICAgLy8gRG9uJ3QgYWxsb3cgcmUtZW50cmFuY3kgaW50byB0aGlzIGZ1bmN0aW9uLgpAQCAtMzI3
LDcgKzI5Myw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCAKICAg
ICAgICAgYm9vbCBzY3JvbGxzVmVydGljYWxseTsKICAgICAgICAgYm9vbCBzY3JvbGxzSG9yaXpv
bnRhbGx5OwogCi0gICAgICAgIGlmICghbV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2VkICYm
IChoU2Nyb2xsID09IFNjcm9sbGJhckF1dG8gfHwgdlNjcm9sbCA9PSBTY3JvbGxiYXJBdXRvKSkg
eworICAgICAgICBpZiAoIW1fc2Nyb2xsYmFyc1N1cHByZXNzZWQgJiYgKGhTY3JvbGwgPT0gU2Ny
b2xsYmFyQXV0byB8fCB2U2Nyb2xsID09IFNjcm9sbGJhckF1dG8pKSB7CiAgICAgICAgICAgICAv
LyBEbyBhIGxheW91dCBpZiBwZW5kaW5nIGJlZm9yZSBjaGVja2luZyBpZiBzY3JvbGxiYXJzIGFy
ZSBuZWVkZWQuCiAgICAgICAgICAgICBpZiAoaGFzVmVydGljYWxTY3JvbGxiYXIgIT0gb2xkSGFz
VmVydGljYWwgfHwgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciAhPSBvbGRIYXNIb3Jpem9udGFsKQog
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHRoaXMpLT5sYXlvdXQoKTsK
QEAgLTM3MywxNSArMzM5LDE1IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhj
b25zdCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSAtIChtX3Zl
cnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSA6IDApLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhl
aWdodCgpKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5zZXRGcmFtZVJlY3QoaEJh
clJlY3QpOwotICAgICAgICBpZiAoIW1fZGF0YS0+bV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiBv
bGRSZWN0ICE9IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpCisgICAgICAgIGlm
ICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiBvbGRSZWN0ICE9IG1faG9yaXpvbnRhbFNjcm9s
bGJhci0+ZnJhbWVSZWN0KCkpCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmlu
dmFsaWRhdGUoKTsKIAotICAgICAgICBpZiAobV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVzc2Vk
KQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAgICAgICAgIG1faG9y
aXpvbnRhbFNjcm9sbGJhci0+c2V0U3VwcHJlc3NJbnZhbGlkYXRpb24odHJ1ZSk7CiAgICAgICAg
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0U3RlcHMoTElORV9TVEVQX1dJTiwgcGFnZVN0ZXAp
OwogICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPnNldFByb3BvcnRpb24oY2xpZW50V2lk
dGgsIGNvbnRlbnRzV2lkdGgoKSk7CiAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0
VmFsdWUoc2Nyb2xsLndpZHRoKCkpOwotICAgICAgICBpZiAobV9kYXRhLT5tX3Njcm9sbGJhcnNT
dXBwcmVzc2VkKQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0U3VwcHJlc3NJbnZhbGlkYXRpb24oZmFsc2Up
OyAKICAgICB9IAogCkBAIC0zOTYsMTUgKzM2MiwxNSBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0
ZVNjcm9sbGJhcnMoY29uc3QgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
dmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlaWdodCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNj
cm9sbGJhci0+aGVpZ2h0KCkgOiAwKSk7CiAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNl
dEZyYW1lUmVjdCh2QmFyUmVjdCk7Ci0gICAgICAgIGlmICghbV9kYXRhLT5tX3Njcm9sbGJhcnNT
dXBwcmVzc2VkICYmIG9sZFJlY3QgIT0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkp
CisgICAgICAgIGlmICghbV9zY3JvbGxiYXJzU3VwcHJlc3NlZCAmJiBvbGRSZWN0ICE9IG1fdmVy
dGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKQogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9s
bGJhci0+aW52YWxpZGF0ZSgpOwogCi0gICAgICAgIGlmIChtX2RhdGEtPm1fc2Nyb2xsYmFyc1N1
cHByZXNzZWQpCisgICAgICAgIGlmIChtX3Njcm9sbGJhcnNTdXBwcmVzc2VkKQogICAgICAgICAg
ICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+c2V0U3VwcHJlc3NJbnZhbGlkYXRpb24odHJ1ZSk7CiAg
ICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNldFN0ZXBzKExJTkVfU1RFUF9XSU4sIHBhZ2VT
dGVwKTsKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+c2V0UHJvcG9ydGlvbihjbGllbnRI
ZWlnaHQsIGNvbnRlbnRzSGVpZ2h0KCkpOwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5z
ZXRWYWx1ZShzY3JvbGwuaGVpZ2h0KCkpOwotICAgICAgICBpZiAobV9kYXRhLT5tX3Njcm9sbGJh
cnNTdXBwcmVzc2VkKQorICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAg
ICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNldFN1cHByZXNzSW52YWxpZGF0aW9uKGZhbHNl
KTsKICAgICB9CiAKQEAgLTQ3Nyw3ICs0NDMsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgLy8gTm93IHBh
aW50IHRoZSBzY3JvbGxiYXJzLgotICAgIGlmICghbV9kYXRhLT5tX3Njcm9sbGJhcnNTdXBwcmVz
c2VkICYmIChtX2hvcml6b250YWxTY3JvbGxiYXIgfHwgbV92ZXJ0aWNhbFNjcm9sbGJhcikpIHsK
KyAgICBpZiAoIW1fc2Nyb2xsYmFyc1N1cHByZXNzZWQgJiYgKG1faG9yaXpvbnRhbFNjcm9sbGJh
ciB8fCBtX3ZlcnRpY2FsU2Nyb2xsYmFyKSkgewogICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiAg
ICAgICAgIEludFJlY3Qgc2Nyb2xsVmlld0RpcnR5UmVjdCA9IHJlY3Q7CiAgICAgICAgIHNjcm9s
bFZpZXdEaXJ0eVJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKQEAgLTU3Niw0NCArNTQyLDYg
QEAgYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotSW50UmVjdCBTY3JvbGxWaWV3Ojp3aW5kb3dSZXNpemVyUmVjdCgpCi17Ci0g
ICAgQVNTRVJUKGlzRnJhbWVWaWV3KCkpOwotICAgIGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4odGhpcyk7Ci0gICAgUGFnZSogcGFnZSA9
IGZyYW1lVmlldy0+ZnJhbWUoKSA/IGZyYW1lVmlldy0+ZnJhbWUoKS0+cGFnZSgpIDogMDsKLSAg
ICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgcmV0dXJuIHBhZ2Ut
PmNocm9tZSgpLT53aW5kb3dSZXNpemVyUmVjdCgpOwotfQotCi1ib29sIFNjcm9sbFZpZXc6OnJl
c2l6ZXJPdmVybGFwc0NvbnRlbnQoKSBjb25zdAotewotICAgIHJldHVybiAhbV9kYXRhLT5tX3Nj
cm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXI7Ci19Ci0KLXZvaWQgU2Nyb2xsVmlldzo6YWRqdXN0T3Zl
cmxhcHBpbmdTY3JvbGxiYXJDb3VudChpbnQgb3ZlcmxhcERlbHRhKQotewotICAgIGludCBvbGRD
b3VudCA9IG1fZGF0YS0+bV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyOwotICAgIG1fZGF0YS0+
bV9zY3JvbGxiYXJzQXZvaWRpbmdSZXNpemVyICs9IG92ZXJsYXBEZWx0YTsKLSAgICBpZiAocGFy
ZW50KCkgJiYgcGFyZW50KCktPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KHBhcmVudCgpKS0+YWRqdXN0T3ZlcmxhcHBpbmdTY3JvbGxiYXJDb3VudChvdmVy
bGFwRGVsdGEpOwotICAgIGVsc2UgaWYgKCFtX2RhdGEtPm1fc2Nyb2xsYmFyc1N1cHByZXNzZWQp
IHsKLSAgICAgICAgLy8gSWYgd2Ugd2VudCBmcm9tIG4gdG8gMCBvciBmcm9tIDAgdG8gbiBhbmQg
d2UncmUgdGhlIG91dGVybW9zdCB2aWV3LAotICAgICAgICAvLyB3ZSBuZWVkIHRvIGludmFsaWRh
dGUgdGhlIHdpbmRvd1Jlc2l6ZXJSZWN0KCksIHNpbmNlIGl0IHdpbGwgbm93IG5lZWQgdG8gcGFp
bnQKLSAgICAgICAgLy8gZGlmZmVyZW50bHkuCi0gICAgICAgIGlmIChvbGRDb3VudCA+IDAgJiYg
bV9kYXRhLT5tX3Njcm9sbGJhcnNBdm9pZGluZ1Jlc2l6ZXIgPT0gMCB8fAotICAgICAgICAgICAg
b2xkQ291bnQgPT0gMCAmJiBtX2RhdGEtPm1fc2Nyb2xsYmFyc0F2b2lkaW5nUmVzaXplciA+IDAp
Ci0gICAgICAgICAgICBpbnZhbGlkYXRlUmVjdCh3aW5kb3dSZXNpemVyUmVjdCgpKTsKLSAgICB9
Ci19Ci0KLXZvaWQgU2Nyb2xsVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudFZpZXcp
Ci17Ci0gICAgaWYgKCFwYXJlbnRWaWV3ICYmIG1fZGF0YS0+bV9zY3JvbGxiYXJzQXZvaWRpbmdS
ZXNpemVyICYmIHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICBz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmFkanVzdE92ZXJsYXBwaW5nU2Nyb2xs
YmFyQ291bnQoZmFsc2UpOwotICAgIFdpZGdldDo6c2V0UGFyZW50KHBhcmVudFZpZXcpOwotfQot
CiB2b2lkIFNjcm9sbFZpZXc6OnNldFBhcmVudFZpc2libGUoYm9vbCB2aXNpYmxlKQogewogICAg
IGlmIChpc1BhcmVudFZpc2libGUoKSA9PSB2aXNpYmxlKQpJbmRleDogcGxhdGZvcm0vd3gvU2Ny
b2xsVmlld1d4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3Bw
CShyZXZpc2lvbiAzNzAxMikKKysrIHBsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDcgKzUwLDYgQEAgcHVibGljOgogICAgIFNjcm9sbFZpZXdQcml2YXRl
KFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcpCiAgICAgICAgIDogd3hFdnRIYW5kbGVyKCkKICAgICAg
ICAgLCBtX3Njcm9sbFZpZXcoc2Nyb2xsVmlldykKLSAgICAgICAgLCBzdXBwcmVzc1Njcm9sbGJh
cnMoZmFsc2UpCiAgICAgICAgICwgdlNjcm9sbGJhck1vZGUoU2Nyb2xsYmFyQXV0bykKICAgICAg
ICAgLCBoU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJBdXRvKQogICAgICAgICAsIHZpZXdTdGFydCgw
LCAwKQpAQCAtMTE2LDcgKzExNSw2IEBAIHB1YmxpYzoKIAogICAgIFNjcm9sbFZpZXcqIG1fc2Ny
b2xsVmlldzsKIAotICAgIGJvb2wgc3VwcHJlc3NTY3JvbGxiYXJzOwogICAgIFNjcm9sbGJhck1v
ZGUgdlNjcm9sbGJhck1vZGU7CiAgICAgU2Nyb2xsYmFyTW9kZSBoU2Nyb2xsYmFyTW9kZTsKICAg
ICB3eFBvaW50IHZpZXdTdGFydDsKQEAgLTMwNywxMiArMzA1LDYgQEAgdm9pZCBTY3JvbGxWaWV3
OjpwbGF0Zm9ybVNjcm9sbGJhck1vZGVzKAogICAgIHZlcnRpY2FsID0gbV9kYXRhLT52U2Nyb2xs
YmFyTW9kZTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpzdXBwcmVzc1Njcm9sbGJhcnMoYm9vbCBz
dXBwcmVzc2VkLCBib29sIHJlcGFpbnRPblN1cHByZXNzKQotewotICAgIGlmICggbV9kYXRhLT5z
dXBwcmVzc1Njcm9sbGJhcnMgIT0gc3VwcHJlc3NlZCApCi0gICAgICAgIG1fZGF0YS0+c3VwcHJl
c3NTY3JvbGxiYXJzID0gc3VwcHJlc3NlZDsKLX0KLQogYm9vbCBTY3JvbGxWaWV3Ojppc09mZnNj
cmVlbigpIGNvbnN0CiB7CiAgICAgLy8gTkI6IFRoaXMgaXMgY2FsbGVkIGZyb20gUmVuZGVyT2Jq
ZWN0Ojp3aWxsUmVuZGVySW1hZ2UK
</data>
<flag name="review"
          id="10768"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>