<?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>27855</bug_id>
          
          <creation_ts>2009-07-30 14:14:13 -0700</creation_ts>
          <short_desc>Delay starting plug-ins</short_desc>
          <delta_ts>2009-07-31 18:14:42 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136008</commentid>
    <comment_count>0</comment_count>
      <attachid>33838</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-07-30 14:14:13 -0700</bug_when>
    <thetext>Created attachment 33838
Patch to add this

Would like a way to delay starting plug-ins. This could be used to leave plug-ins unstarted until they are brought onto the screen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136234</commentid>
    <comment_count>1</comment_count>
      <attachid>33838</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-31 13:40:21 -0700</bug_when>
    <thetext>Comment on attachment 33838
Patch to add this

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136325</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2009-07-31 18:14:42 -0700</bug_when>
    <thetext>Committed in r46649 with a couple of minor changes suggested by Mark Rowe in person.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33838</attachid>
            <date>2009-07-30 14:14:13 -0700</date>
            <delta_ts>2009-07-31 13:40:20 -0700</delta_ts>
            <desc>Patch to add this</desc>
            <filename>0001-WebCore.patch</filename>
            <type>text/plain</type>
            <size>37141</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSBhYjk3NTY1M2ZjY2Q5YTljMjFjNmExYjg5NmZjMmM2NDBjNGE1OGE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogVGh1LCAzMCBKdWwgMjAwOSAwMToxNTo0MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFdl
YkNvcmU6CgoyMDA5LTA3LTI5ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CgogICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njk4MTEzPiBTYWZhcmkgc2hvdWxkbid0IGF1dG8t
YWN0aXZhdGUgcGx1Zy1pbnMgaW4KICAgICAgICBiYWNrZ3JvdW5kIHRhYnMgKG1ha2UgV2luIGNv
bnNpc3RlbnQgd2l0aCBNYWMpCgogICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6
CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxUb1N0
YXJ0UGx1Z2luKToKICAgICAgICBEZWNsYXJlIGEgbmV3IGZ1bmN0aW9uIHRvIGRpc3BhdGNoIGZh
aWx1cmVzIHRvIHN0YXJ0IHBsdWctaW5zLgoKICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CiAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgogICAgICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2
YXJpYWJsZS4KICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkVW5zdGFydGVkUGx1Z2luKToKICAg
ICAgICBBZGQgdGhlIFBsdWdpblZpZXcgdG8gdGhlIHNldCBvZiB1bnN0YXJ0ZWQgcGx1Zy1pbnMu
CiAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnJlbW92ZVVuc3RhcnRlZFBsdWdpbik6CiAgICAgICAg
UmVtb3ZlIHRoZSBQbHVnaW5WaWV3IGZyb20gdGhlIHNldCBvZiB1bnN0YXJ0ZWQgcGx1Zy1pbnMu
CiAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldENhblN0YXJ0UGx1Z2lucyk6CiAgICAgICAgSWYg
d2UgY2FuIG5vdyBzdGFydCBwbHVnLWlucywgaXRlcmF0ZSB0aGUgc2V0IG9mIHVuc3RhcnRlZCBw
bHVnLWlucywKICAgICAgICBzdGFydGluZyB0aGVtLiBJZiBhIHBsdWctaW4gZmFpbHMgdG8gc3Rh
cnQsIGRpc3BhdGNoIGEgZmFpbGVkLXRvLXN0YXJ0LQogICAgICAgIHBsdWctaW4gZXJyb3IuIENs
ZWFyIHRoZSBsaXN0IG9mIHVuc3RhcnRlZCBwbHVnLWlucy4KCiAgICAgICAgKiBwYWdlL1BhZ2Uu
aDoKICAgICAgICBBZGRlZCBtX2NhblN0YXJ0UGx1Z2lucyB0byB0cmFjayB3aGV0aGVyIHdlIGNh
biBjdXJyZW50bHkgc3RhcnQKICAgICAgICBwbHVnLWlucy4gQWRkZWQgbV91bnN0YXJ0ZWRQbHVn
aW5zIHRvIGtlZXAgdHJhY2sgb2YgcGx1Zy1pbnMgaW4gdGhlCiAgICAgICAgcGFnZSB0aGF0IGFy
ZSB3YWl0aW5nIHRvIGJlIHN0YXJ0ZWQuCiAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNhblN0YXJ0
UGx1Z2lucyk6CgogICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6c3RhcnQpOgogICAgICAgIG1fbWltZVR5cGUgaXMgbm93IGEgV2Vi
Q29yZTo6U3RyaW5nLCBzbyB3ZSBjYWxsIC51dGY4KCkuIElmIE5QUF9OZXcoKQogICAgICAgIGZh
aWxzLCBzZXQgbV9zdGF0dXMgdG8gcmVmbGVjdCB0aGlzOyB0aGlzIHVzZWQgdG8gYmUgc2V0IGJ5
IGluaXQoKSwgYnV0CiAgICAgICAgc3RhcnQoKSB3aWxsIG5vdCBiZSBjYWxsZWQgYnkgaW5pdCgp
IGlmIHdlIGFyZSBkZWxheWluZyBzdGFydCgpLgogICAgICAgIElmIE5QUF9OZXcoKSBzdWNjZWVk
cywgc2V0IG1fc3RhdHVzIHRvIHJlZmxlY3QgdGhpcywgYW5kIGNhbGwKICAgICAgICBwbGF0Zm9y
bVN0YXJ0KCkuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0YXJ0T3JBZGRUb1Vuc3Rh
cnRlZExpc3QpOgogICAgICAgIElmIHdlIGNhbm5vdCBzdGFydCBwbHVnLWlucywgYWRkIHRoaXMg
dmlldyB0byB0aGUgUGFnZSdzIGxpc3Qgb2YKICAgICAgICB1bnN0YXJ0ZWQgcGx1Zy1pbnMgYW5k
IHJldHVybiB0cnVlLiBPdGhlcndpc2UsIGNhbGwgc3RhcnQoKSBhbmQgcmV0dXJuCiAgICAgICAg
dGhlIHJlc3VsdC4KICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cmVtb3ZlRnJvbVVuc3Rh
cnRlZExpc3RJZk5lY2Vzc2FyeSk6CiAgICAgICAgSWYgd2UndmUgYmVlbiBzdGFydGVkIG9yIHdl
IGRvbid0IGhhdmUgYSBQYWdlLCByZXR1cm4gZWFybHkuIFJlbW92ZQogICAgICAgIG91cnNlbHZl
cyBmcm9tIHRoZSBQYWdlJ3MgbGlzdCBvZiB1bnN0YXJ0ZWQgcGx1Zy1pbnMuCiAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OmJpbmRpbmdJbnN0YW5jZSk6CiAgICAgICAgSWYgd2UgaGF2ZW4n
dCBiZWVuIHN0YXJ0ZWQgeWV0LCByZXR1cm4gMC4gVGhpcyBtYXRjaGVzIHRoZSBNYWMKICAgICAg
ICBiZWhhdmlvci4KICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0UGFyYW1ldGVycyk6
CiAgICAgICAgSWYgd2UgZmluZCB0aGUgInBsdWctaW5zIHBhZ2UiIHBhcmFtZXRlciwgcmVjb3Jk
IGl0OyBpdCBtYXkgYmUgdXNlZCBpZgogICAgICAgIHdlIGZhaWwgdG8gc3RhcnQgdGhlIHBsdWct
aW4uCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgogICAgICAgIElu
aXRpYWxpemUgbmV3IG1lbWJlcnMgbV9oYXZlVXBkYXRlZFBsdWdpbldpZGdldC4gSW5pdGlhbGl6
ZSBtX21pbWVUeXBlCiAgICAgICAgd2l0aCBtaW1lVHlwZSBkaXJlY3RseTsgbV9taW1lVHlwZSBp
cyBub3cgYSBXZWJDb3JlOjpTdHJpbmcuCgogICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6
CiAgICAgICAgTWFkZSBzdGFydCgpIHB1YmxpYywgc28gUGFnZSBjYW4gY2FsbCBpdCB3aGVuIHdl
IHN0YXJ0IHVuc3RhcnRlZAogICAgICAgIHBsdWctaW5zLiBDaGFuZ2VkIG1fbWltZVR5cGUgZnJv
bSBDU3RyaW5nIHRvIFN0cmluZyBhbmQgYWRkZWQKICAgICAgICBtX3BsdWdpbnNQYWdlOyB0aGVz
ZSBhcmUgbmVlZGVkIGJ5IGRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVnaW4oKS4KICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6cGx1Z2luc1BhZ2UpOgogICAgICAgIEFkZGVkIGZvciBkaXNw
YXRjaERpZEZhaWxUb1N0YXJ0UGx1Z2luKCkuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
Om1pbWVUeXBlKToKICAgICAgICBEaXR0by4KICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
dXJsKToKICAgICAgICBEaXR0by4KCiAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcDoKICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CiAgICAg
ICAgU3R1YmJlZC4KCiAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CiAgICAgICAgU3R1YmJl
ZC4KCiAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CiAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgogICAgICAgIFN0dWJiZWQuCgogICAgICAg
ICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6CiAgICAgICAgVXNlIG1faGF2ZVVwZGF0ZWRQbHVn
aW5XaWRnZXQgdG8gZW5zdXJlIHRoYXQgd2Ugd2lsbCBjYWxsIE1vdmVXaW5kb3coKQogICAgICAg
IGFuZCBTZXRXaW5kb3dSZ24oKSB0byBwb3NpdGlvbiB0aGUgcGx1Zy1pbiBhbmQgc2V0IGl0cyBj
bGlwIHJlY3QgaWYgYW4KICAgICAgICBlYXJsaWVyIGNhbGwgdG8gdXBkYXRlUGx1Z2luV2lkZ2V0
KCkgd2FzIG1hZGUgYmVmb3JlCiAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoKSB3YXMg
Y2FsbGVkIHRvIHNldCB0aGUgcGx1Zy1pbidzIEhXTkQuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6On5QbHVnaW5WaWV3KToKICAgICAgICBDYWxsIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0
SWZOZWNlc3NhcnkoKSB0byByZW1vdmUgdGhlIHBsdWctaW4gZnJvbQogICAgICAgIHRoZSB1bnN0
YXJ0ZWQgbGlzdCBpZiB0aGUgcGx1Zy1pbiBpcyBkZXN0cm95ZWQgYmVmb3JlIGl0IGlzIHN0YXJ0
ZWQuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmluaXQpOgogICAgICAgIENhbGwgc3Rh
cnRPckFkZHRvVW5zdGFydGVkTGlzdCB0byBzdGFydCB0aGUgcGx1Zy1pbiBvciwgaWYgcGx1Zy1p
bnMKICAgICAgICBjYW5ub3QgYmUgc3RhcnRlZCwgdG8gYWRkIGl0IHRvIHRoZSBsaXN0IG9mIHBs
dWctaW5zIHdhaXRpbmcgdG8gYmUKICAgICAgICBzdGFydGVkLiBTZXQgbV9zdGF0dXMgdG8gaW5k
aWNhdGUgc3VjY2VzczsgdGhpcyBpcyBhbHNvIHNldCBieSBzdGFydCgpLAogICAgICAgIGJ1dCB0
aGF0IG1heSBiZSBkZWxheWVkLCBhbmQgd2UgZG9uJ3Qgd2FudCB0aGUgbG9hZGVyIHRvIGRpc3Bh
dGNoIGEKICAgICAgICBmYWlsZWQtdG8tc3RhcnQtcGx1Zy1pbiBlcnJvciB3aGVuIHdlIHJldHVy
biBmcm9tIGluaXQoKS4KICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFy
dCk6CiAgICAgICAgQWRkZWQ7IGNvZGUgbW92ZWQgZnJvbSBpbml0KCkuIFRoaXMgaXMgbm93IGNh
bGxlZCBieSBzdGFydCgpIHRvIHBlcmZvcm0KICAgICAgICBhbnkgcGxhdGZvcm0tc3BlY2lmaWMg
dGFza3MgdGhhdCBuZWVkIHRvIHRha2UgcGxhY2UgYWZ0ZXIgdGhlIHBsdWctaW4KICAgICAgICBo
YXMgc3RhcnRlZC4gQWRkZWQgYSBjYWxsIHRvIHVwZGF0ZVBsdWdpbldpZGdldCgpIHRvIGVuc3Vy
ZSB3ZSBwb3NpdGlvbgogICAgICAgIHRoZSBwbHVnLWluIGFuZCBzZXQgaXRzIGNsaXAgcmVjdCBh
ZnRlciB0aGUgcGx1Zy1pbiBoYXMgc3RhcnRlZC4KICAgICAgICBSZW1vdmVkIHRoZSBzZXR0aW5n
IG9mIG1fc3RhdHVzOyBzdGFydCgpIGRvZXMgdGhpcyBiZWZvcmUgY2FsbGluZyB0aGlzCiAgICAg
ICAgZnVuY3Rpb24gKGFuZCB3ZSBhc3NlcnQgdGhpcyBhdCB0aGUgaGVhZCBvZiB0aGUgZnVuY3Rp
b24pLgoKV2ViS2l0L3dpbjoKCjIwMDktMDctMjkgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0
QGFwcGxlLmNvbT4KCiAgICAgICAgUGFydCBvZiA8cmRhcjovL3Byb2JsZW0vNTY5ODExMz4gU2Fm
YXJpIHNob3VsZG4ndCBhdXRvLWFjdGl2YXRlCiAgICAgICAgcGx1Zy1pbnMgaW4gYmFja2dyb3Vu
ZCB0YWJzIChtYWtlIFdpbiBjb25zaXN0ZW50IHdpdGggTWFjKQoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5p
ZGw6CiAgICAgICAgQWRkIHNldENhblN0YXJ0UGx1Z2lucygpLgoKICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKICAgICAgICAoV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVnaW4pOgogICAgICAgIEFkZGVkOyBjb2Rl
IG1vdmVkIGZyb20gY3JlYXRlUGx1Z2luKCkuIE1vZGlmaWVkIHRvIG9idGFpbiB0aGUgcGx1Zy1p
bidzCiAgICAgICAgcGFnZSBVUkwsIHRoZSBwbHVnLWlucyAicGx1Zy1pbnMgcGFnZSIgcGFyYW1l
dGVyIHZhbHVlLCBhbmQgdGhlCiAgICAgICAgcGx1Zy1pbidzIE1JTUUgdHlwZSBieSBjYWxsaW5n
IGdldHRlciBmdW5jdGlvbnMgb24gdGhlIHBhc3NlZAogICAgICAgIFBsdWdpblZpZXcuCiAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgogICAgICAgIElmIHRoZSBw
bHVnLWluIHN0YXR1cyBpcyBub3QgInN1Y2Nlc3MsIiBjYWxsCiAgICAgICAgZGlzcGF0Y2hEaWRG
YWlsVG9TdGFydFBsdWdpbigpLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CiAgICAgICAgRGVjbGFyZSBhbiBvdmVycmlkZSBvZiBkaXNwYXRjaERpZEZh
aWxUb1N0YXJ0UGx1Z2luKCkuCgogICAgICAgICogV2ViVmlldy5jcHA6CiAgICAgICAgKFdlYlZp
ZXdXbmRQcm9jKToKICAgICAgICBBZGQgYSBtaXNzaW5nICkgdG8gYSBjb21tZW50LgogICAgICAg
IChXZWJWaWV3OjpzZXRDYW5TdGFydFBsdWdpbnMpOgogICAgICAgIENhbGwgdGhlIFBhZ2UncyBz
ZXRDYW5TdGFydFBsdWdpbnMoKSBmdW5jdGlvbi4KCiAgICAgICAgKiBXZWJWaWV3Lmg6Ci0tLQog
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDk5
ICsrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oICAg
ICAgICAgICAgICAgICB8ICAgIDUgKy0KIFdlYkNvcmUvcGFnZS9QYWdlLmNwcCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAzNiArKysrKysKIFdlYkNvcmUvcGFnZS9QYWdlLmggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSArKwogV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDQzICsrKysrKystCiBXZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKystCiBX
ZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwICAgICAgICAgICAgICB8ICAgIDQg
KwogV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcCAgICAgICAgICAgICAgfCAg
ICA1ICsKIFdlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwICAgICAgICAgICAgICAg
IHwgICAgNSArCiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwICAgICAgICAg
ICAgICB8ICAgMjIgKysrLQogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDMxICsrKysrKwogV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3
UHJpdmF0ZS5pZGwgICAgICAgICAgfCAgICAyICsKIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIHwgIDExNSArKysrKysrKysrLS0tLS0tLS0tLQogV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgfCAgICAzICsK
IFdlYktpdC93aW4vV2ViVmlldy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
OCArKy0KIFdlYktpdC93aW4vV2ViVmlldy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiAxNiBmaWxlcyBjaGFuZ2VkLCAzMzUgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAzMjYxMTdhLi41MzE2MGFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAwOS0wNy0yOSAgSm9u
IEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81Njk4MTEzPiBTYWZhcmkgc2hvdWxkbid0IGF1dG8tYWN0aXZhdGUgcGx1Zy1pbnMgaW4K
KyAgICAgICAgYmFja2dyb3VuZCB0YWJzIChtYWtlIFdpbiBjb25zaXN0ZW50IHdpdGggTWFjKQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsVG9TdGFydFBsdWdpbik6CisgICAgICAgIERlY2xhcmUgYSBuZXcg
ZnVuY3Rpb24gdG8gZGlzcGF0Y2ggZmFpbHVyZXMgdG8gc3RhcnQgcGx1Zy1pbnMuCisKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgIEluaXRpYWxpemUgbmV3IG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmFkZFVuc3RhcnRlZFBsdWdpbik6CisgICAgICAgIEFkZCB0aGUgUGx1Z2luVmlldyB0byB0
aGUgc2V0IG9mIHVuc3RhcnRlZCBwbHVnLWlucy4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnJl
bW92ZVVuc3RhcnRlZFBsdWdpbik6CisgICAgICAgIFJlbW92ZSB0aGUgUGx1Z2luVmlldyBmcm9t
IHRoZSBzZXQgb2YgdW5zdGFydGVkIHBsdWctaW5zLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0Q2FuU3RhcnRQbHVnaW5zKToKKyAgICAgICAgSWYgd2UgY2FuIG5vdyBzdGFydCBwbHVnLWlu
cywgaXRlcmF0ZSB0aGUgc2V0IG9mIHVuc3RhcnRlZCBwbHVnLWlucywKKyAgICAgICAgc3RhcnRp
bmcgdGhlbS4gSWYgYSBwbHVnLWluIGZhaWxzIHRvIHN0YXJ0LCBkaXNwYXRjaCBhIGZhaWxlZC10
by1zdGFydC0KKyAgICAgICAgcGx1Zy1pbiBlcnJvci4gQ2xlYXIgdGhlIGxpc3Qgb2YgdW5zdGFy
dGVkIHBsdWctaW5zLgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIEFkZGVkIG1f
Y2FuU3RhcnRQbHVnaW5zIHRvIHRyYWNrIHdoZXRoZXIgd2UgY2FuIGN1cnJlbnRseSBzdGFydAor
ICAgICAgICBwbHVnLWlucy4gQWRkZWQgbV91bnN0YXJ0ZWRQbHVnaW5zIHRvIGtlZXAgdHJhY2sg
b2YgcGx1Zy1pbnMgaW4gdGhlCisgICAgICAgIHBhZ2UgdGhhdCBhcmUgd2FpdGluZyB0byBiZSBz
dGFydGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y2FuU3RhcnRQbHVnaW5zKToKKworICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpzdGFydCk6CisgICAgICAgIG1fbWltZVR5cGUgaXMgbm93IGEgV2ViQ29yZTo6U3RyaW5n
LCBzbyB3ZSBjYWxsIC51dGY4KCkuIElmIE5QUF9OZXcoKQorICAgICAgICBmYWlscywgc2V0IG1f
c3RhdHVzIHRvIHJlZmxlY3QgdGhpczsgdGhpcyB1c2VkIHRvIGJlIHNldCBieSBpbml0KCksIGJ1
dAorICAgICAgICBzdGFydCgpIHdpbGwgbm90IGJlIGNhbGxlZCBieSBpbml0KCkgaWYgd2UgYXJl
IGRlbGF5aW5nIHN0YXJ0KCkuCisgICAgICAgIElmIE5QUF9OZXcoKSBzdWNjZWVkcywgc2V0IG1f
c3RhdHVzIHRvIHJlZmxlY3QgdGhpcywgYW5kIGNhbGwKKyAgICAgICAgcGxhdGZvcm1TdGFydCgp
LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhcnRPckFkZFRvVW5zdGFydGVkTGlz
dCk6CisgICAgICAgIElmIHdlIGNhbm5vdCBzdGFydCBwbHVnLWlucywgYWRkIHRoaXMgdmlldyB0
byB0aGUgUGFnZSdzIGxpc3Qgb2YKKyAgICAgICAgdW5zdGFydGVkIHBsdWctaW5zIGFuZCByZXR1
cm4gdHJ1ZS4gT3RoZXJ3aXNlLCBjYWxsIHN0YXJ0KCkgYW5kIHJldHVybgorICAgICAgICB0aGUg
cmVzdWx0LgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cmVtb3ZlRnJvbVVuc3RhcnRl
ZExpc3RJZk5lY2Vzc2FyeSk6CisgICAgICAgIElmIHdlJ3ZlIGJlZW4gc3RhcnRlZCBvciB3ZSBk
b24ndCBoYXZlIGEgUGFnZSwgcmV0dXJuIGVhcmx5LiBSZW1vdmUKKyAgICAgICAgb3Vyc2VsdmVz
IGZyb20gdGhlIFBhZ2UncyBsaXN0IG9mIHVuc3RhcnRlZCBwbHVnLWlucy4KKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OmJpbmRpbmdJbnN0YW5jZSk6CisgICAgICAgIElmIHdlIGhhdmVu
J3QgYmVlbiBzdGFydGVkIHlldCwgcmV0dXJuIDAuIFRoaXMgbWF0Y2hlcyB0aGUgTWFjCisgICAg
ICAgIGJlaGF2aW9yLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0UGFyYW1ldGVy
cyk6CisgICAgICAgIElmIHdlIGZpbmQgdGhlICJwbHVnLWlucyBwYWdlIiBwYXJhbWV0ZXIsIHJl
Y29yZCBpdDsgaXQgbWF5IGJlIHVzZWQgaWYKKyAgICAgICAgd2UgZmFpbCB0byBzdGFydCB0aGUg
cGx1Zy1pbi4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAg
ICAgICBJbml0aWFsaXplIG5ldyBtZW1iZXJzIG1faGF2ZVVwZGF0ZWRQbHVnaW5XaWRnZXQuIElu
aXRpYWxpemUgbV9taW1lVHlwZQorICAgICAgICB3aXRoIG1pbWVUeXBlIGRpcmVjdGx5OyBtX21p
bWVUeXBlIGlzIG5vdyBhIFdlYkNvcmU6OlN0cmluZy4KKworICAgICAgICAqIHBsdWdpbnMvUGx1
Z2luVmlldy5oOgorICAgICAgICBNYWRlIHN0YXJ0KCkgcHVibGljLCBzbyBQYWdlIGNhbiBjYWxs
IGl0IHdoZW4gd2Ugc3RhcnQgdW5zdGFydGVkCisgICAgICAgIHBsdWctaW5zLiBDaGFuZ2VkIG1f
bWltZVR5cGUgZnJvbSBDU3RyaW5nIHRvIFN0cmluZyBhbmQgYWRkZWQKKyAgICAgICAgbV9wbHVn
aW5zUGFnZTsgdGhlc2UgYXJlIG5lZWRlZCBieSBkaXNwYXRjaERpZEZhaWxUb1N0YXJ0UGx1Z2lu
KCkuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbHVnaW5zUGFnZSk6CisgICAgICAg
IEFkZGVkIGZvciBkaXNwYXRjaERpZEZhaWxUb1N0YXJ0UGx1Z2luKCkuCisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjptaW1lVHlwZSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXJsKToKKyAgICAgICAgRGl0dG8uCisKKyAgICAgICAgKiBwbHVn
aW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICBTdHViYmVkLgorCisgICAgICAgICogcGx1Z2lucy9t
YWMvUGx1Z2luVmlld01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KToKKyAgICAgICAgU3R1YmJlZC4KKworICAgICAgICAqIHBsdWdpbnMvcXQvUGx1
Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3Rh
cnQpOgorICAgICAgICBTdHViYmVkLgorCisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQpOgorICAgICAgICBVc2UgbV9oYXZlVXBkYXRlZFBsdWdpbldpZGdldCB0byBlbnN1cmUgdGhh
dCB3ZSB3aWxsIGNhbGwgTW92ZVdpbmRvdygpCisgICAgICAgIGFuZCBTZXRXaW5kb3dSZ24oKSB0
byBwb3NpdGlvbiB0aGUgcGx1Zy1pbiBhbmQgc2V0IGl0cyBjbGlwIHJlY3QgaWYgYW4KKyAgICAg
ICAgZWFybGllciBjYWxsIHRvIHVwZGF0ZVBsdWdpbldpZGdldCgpIHdhcyBtYWRlIGJlZm9yZQor
ICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCgpIHdhcyBjYWxsZWQgdG8gc2V0IHRoZSBw
bHVnLWluJ3MgSFdORC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6On5QbHVnaW5WaWV3
KToKKyAgICAgICAgQ2FsbCByZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCkgdG8g
cmVtb3ZlIHRoZSBwbHVnLWluIGZyb20KKyAgICAgICAgdGhlIHVuc3RhcnRlZCBsaXN0IGlmIHRo
ZSBwbHVnLWluIGlzIGRlc3Ryb3llZCBiZWZvcmUgaXQgaXMgc3RhcnRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OmluaXQpOgorICAgICAgICBDYWxsIHN0YXJ0T3JBZGR0b1Vuc3Rh
cnRlZExpc3QgdG8gc3RhcnQgdGhlIHBsdWctaW4gb3IsIGlmIHBsdWctaW5zCisgICAgICAgIGNh
bm5vdCBiZSBzdGFydGVkLCB0byBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgcGx1Zy1pbnMgd2FpdGlu
ZyB0byBiZQorICAgICAgICBzdGFydGVkLiBTZXQgbV9zdGF0dXMgdG8gaW5kaWNhdGUgc3VjY2Vz
czsgdGhpcyBpcyBhbHNvIHNldCBieSBzdGFydCgpLAorICAgICAgICBidXQgdGhhdCBtYXkgYmUg
ZGVsYXllZCwgYW5kIHdlIGRvbid0IHdhbnQgdGhlIGxvYWRlciB0byBkaXNwYXRjaCBhCisgICAg
ICAgIGZhaWxlZC10by1zdGFydC1wbHVnLWluIGVycm9yIHdoZW4gd2UgcmV0dXJuIGZyb20gaW5p
dCgpLgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAg
ICAgIEFkZGVkOyBjb2RlIG1vdmVkIGZyb20gaW5pdCgpLiBUaGlzIGlzIG5vdyBjYWxsZWQgYnkg
c3RhcnQoKSB0byBwZXJmb3JtCisgICAgICAgIGFueSBwbGF0Zm9ybS1zcGVjaWZpYyB0YXNrcyB0
aGF0IG5lZWQgdG8gdGFrZSBwbGFjZSBhZnRlciB0aGUgcGx1Zy1pbgorICAgICAgICBoYXMgc3Rh
cnRlZC4gQWRkZWQgYSBjYWxsIHRvIHVwZGF0ZVBsdWdpbldpZGdldCgpIHRvIGVuc3VyZSB3ZSBw
b3NpdGlvbgorICAgICAgICB0aGUgcGx1Zy1pbiBhbmQgc2V0IGl0cyBjbGlwIHJlY3QgYWZ0ZXIg
dGhlIHBsdWctaW4gaGFzIHN0YXJ0ZWQuCisgICAgICAgIFJlbW92ZWQgdGhlIHNldHRpbmcgb2Yg
bV9zdGF0dXM7IHN0YXJ0KCkgZG9lcyB0aGlzIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAgICAgICAg
ZnVuY3Rpb24gKGFuZCB3ZSBhc3NlcnQgdGhpcyBhdCB0aGUgaGVhZCBvZiB0aGUgZnVuY3Rpb24p
LgorCiAyMDA5LTA3LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggMWU2ODk5MS4uNGQ3ZWFkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBA
IC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBJbnRTaXplOwog
ICAgIGNsYXNzIEtVUkw7CiAgICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKKyAgICBjbGFzcyBQ
bHVnaW5WaWV3OwogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VI
YW5kbGU7CiAgICAgY2xhc3MgUmVzb3VyY2VMb2FkZXI7CkBAIC0yMDIsOSArMjAzLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0
aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lk
Z2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVnSW5FbGVtZW50KiwgY29u
c3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpID0gMDsKLSAgICAg
ICAgCisKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxl
dFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBLVVJMJiBi
YXNlVVJMLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhcmFtVmFsdWVzKSA9IDA7CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkRmFpbFRvU3RhcnRQbHVnaW4oY29uc3QgUGx1Z2luVmlldyopIGNvbnN0IHsgfQorCiAgICAg
ICAgIHZpcnR1YWwgT2JqZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgU3Ry
aW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMzJjNjBjNi4uMTg3
OGJmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCkBAIC00NCw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAu
aCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2lu
Y2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC0xMjEsNiArMTIzLDcgQEAgUGFnZTo6UGFnZShDaHJv
bWVDbGllbnQqIGNocm9tZUNsaWVudCwgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xp
ZW50LCBFZGkKICAgICAsIG1fZGVidWdnZXIoMCkKICAgICAsIG1fY3VzdG9tSFRNTFRva2VuaXpl
clRpbWVEZWxheSgtMSkKICAgICAsIG1fY3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZSgtMSkK
KyAgICAsIG1fY2FuU3RhcnRQbHVnaW5zKHRydWUpCiB7CiAgICAgaWYgKCFhbGxQYWdlcykgewog
ICAgICAgICBhbGxQYWdlcyA9IG5ldyBIYXNoU2V0PFBhZ2UqPjsKQEAgLTI5OCw2ICszMDEsMzkg
QEAgUGx1Z2luRGF0YSogUGFnZTo6cGx1Z2luRGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGx1
Z2luRGF0YS5nZXQoKTsKIH0KIAordm9pZCBQYWdlOjphZGRVbnN0YXJ0ZWRQbHVnaW4oUGx1Z2lu
VmlldyogdmlldykKK3sKKyAgICBBU1NFUlQoIW1fY2FuU3RhcnRQbHVnaW5zKTsKKyAgICBtX3Vu
c3RhcnRlZFBsdWdpbnMuYWRkKHZpZXcpOworfQorCit2b2lkIFBhZ2U6OnJlbW92ZVVuc3RhcnRl
ZFBsdWdpbihQbHVnaW5WaWV3KiB2aWV3KQoreworICAgIEFTU0VSVCghbV9jYW5TdGFydFBsdWdp
bnMpOworICAgIG1fdW5zdGFydGVkUGx1Z2lucy5yZW1vdmUodmlldyk7Cit9CisKK3ZvaWQgUGFn
ZTo6c2V0Q2FuU3RhcnRQbHVnaW5zKGJvb2wgYikKK3sKKyAgICBpZiAobV9jYW5TdGFydFBsdWdp
bnMgPT0gYikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jYW5TdGFydFBsdWdpbnMgPSBiOwor
CisgICAgaWYgKCFtX2NhblN0YXJ0UGx1Z2lucyB8fCBtX3Vuc3RhcnRlZFBsdWdpbnMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UGx1Z2luVmlldyo+IHVuc3RhcnRl
ZFBsdWdpbnM7CisgICAgY29weVRvVmVjdG9yKG1fdW5zdGFydGVkUGx1Z2lucywgdW5zdGFydGVk
UGx1Z2lucyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVuc3RhcnRlZFBsdWdpbnMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHVuc3RhcnRlZFBsdWdpbnNbaV0tPnN0YXJ0KCkp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdW5zdGFydGVkUGx1Z2luc1tpXS0+cGFy
ZW50RnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZhaWxUb1N0YXJ0UGx1
Z2luKHVuc3RhcnRlZFBsdWdpbnNbaV0pOworICAgIH0KKyAgICBtX3Vuc3RhcnRlZFBsdWdpbnMu
Y2xlYXIoKTsKK30KKwogc3RhdGljIEZyYW1lKiBpbmNyZW1lbnRGcmFtZShGcmFtZSogY3Vyciwg
Ym9vbCBmb3J3YXJkLCBib29sIHdyYXBGbGFnKQogewogICAgIHJldHVybiBmb3J3YXJkCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBj
YzNkMjVkLi45ZDlhZjg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZUdyb3VwOwogICAgIGNsYXNzIFBsdWdpbkRh
dGE7CisgICAgY2xhc3MgUGx1Z2luVmlldzsKICAgICBjbGFzcyBQcm9ncmVzc1RyYWNrZXI7CiAg
ICAgY2xhc3MgUmVuZGVyVGhlbWU7CiAgICAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKQEAgLTg1
LDYgKzg2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVm
cmVzaFBsdWdpbnMoYm9vbCByZWxvYWQpOwogICAgICAgICBQbHVnaW5EYXRhKiBwbHVnaW5EYXRh
KCkgY29uc3Q7CiAKKyAgICAgICAgdm9pZCBzZXRDYW5TdGFydFBsdWdpbnMoYm9vbCk7CisgICAg
ICAgIGJvb2wgY2FuU3RhcnRQbHVnaW5zKCkgY29uc3QgeyByZXR1cm4gbV9jYW5TdGFydFBsdWdp
bnM7IH0KKyAgICAgICAgdm9pZCBhZGRVbnN0YXJ0ZWRQbHVnaW4oUGx1Z2luVmlldyopOworICAg
ICAgICB2b2lkIHJlbW92ZVVuc3RhcnRlZFBsdWdpbihQbHVnaW5WaWV3Kik7CisKICAgICAgICAg
RWRpdG9yQ2xpZW50KiBlZGl0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvckNsaWVu
dDsgfQogCiAgICAgICAgIHZvaWQgc2V0TWFpbkZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKQEAg
LTI1Miw2ICsyNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGRvdWJsZSBtX2N1
c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXk7CiAgICAgICAgIGludCBtX2N1c3RvbUhUTUxUb2tl
bml6ZXJDaHVua1NpemU7CiAKKyAgICAgICAgYm9vbCBtX2NhblN0YXJ0UGx1Z2luczsKKyAgICAg
ICAgSGFzaFNldDxQbHVnaW5WaWV3Kj4gbV91bnN0YXJ0ZWRQbHVnaW5zOworCiAjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQogICAgICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gbV9zZXNzaW9u
U3RvcmFnZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDU3NjhhOWMuLjU0YjVi
YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTE2NCwxNCArMTY0LDE2IEBAIGJvb2wgUGx1
Z2luVmlldzo6c3RhcnQoKQogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmll
dyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3Mo
SlNDOjpTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKHRy
dWUpOwotICAgICAgICBucEVyciA9IG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5uZXdwKChOUE1J
TUVUeXBlKW1fbWltZVR5cGUuZGF0YSgpLCBtX2luc3RhbmNlLCBtX21vZGUsIG1fcGFyYW1Db3Vu
dCwgbV9wYXJhbU5hbWVzLCBtX3BhcmFtVmFsdWVzLCBOVUxMKTsKKyAgICAgICAgbnBFcnIgPSBt
X3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+bmV3cCgoTlBNSU1FVHlwZSltX21pbWVUeXBlLnV0Zjgo
KS5kYXRhKCksIG1faW5zdGFuY2UsIG1fbW9kZSwgbV9wYXJhbUNvdW50LCBtX3BhcmFtTmFtZXMs
IG1fcGFyYW1WYWx1ZXMsIE5VTEwpOwogICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsK
ICAgICAgICAgTE9HX05QRVJST1IobnBFcnIpOwogICAgICAgICBQbHVnaW5WaWV3OjpzZXRDdXJy
ZW50UGx1Z2luVmlldygwKTsKICAgICB9CiAKLSAgICBpZiAobnBFcnIgIT0gTlBFUlJfTk9fRVJS
T1IpCisgICAgaWYgKG5wRXJyICE9IE5QRVJSX05PX0VSUk9SKSB7CisgICAgICAgIG1fc3RhdHVz
ID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KIAogICAgIG1faXNTdGFydGVkID0gdHJ1ZTsKIApAQCAtMTgyLDYgKzE4NCwxMCBAQCBi
b29sIFBsdWdpblZpZXc6OnN0YXJ0KCkKICAgICAgICAgbG9hZChmcmFtZUxvYWRSZXF1ZXN0LCBm
YWxzZSwgMCk7CiAgICAgfQogCisgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHk7CisKKyAgICBwbGF0Zm9ybVN0YXJ0KCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMjE5LDYgKzIyNSwzMCBAQCBzdGF0aWMgYm9vbCBnZXRTdHJpbmcoU2NyaXB0Q29udHJv
bGxlciogcHJveHksIEpTVmFsdWUgcmVzdWx0LCBTdHJpbmcmIHN0cmluZykKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBQbHVnaW5WaWV3OjpzdGFydE9yQWRkVG9VbnN0YXJ0ZWRMaXN0KCkK
K3sKKyAgICBpZiAoIW1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFtX3BhcmVudEZyYW1lLT5wYWdlKCktPmNhblN0YXJ0UGx1Z2lucygpKSB7
CisgICAgICAgIG1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+YWRkVW5zdGFydGVkUGx1Z2luKHRoaXMp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhcnQoKTsKK30K
Kwordm9pZCBQbHVnaW5WaWV3OjpyZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCkK
K3sKKyAgICBpZiAobV9pc1N0YXJ0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9w
YXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhcmVudEZyYW1l
LT5wYWdlKCktPnJlbW92ZVVuc3RhcnRlZFBsdWdpbih0aGlzKTsKK30KKwogdm9pZCBQbHVnaW5W
aWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIC8vIGRv
bid0IGxldCBhIHBsdWdpbiBzdGFydCBhbnkgbG9hZHMgaWYgaXQgaXMgbm8gbG9uZ2VyIHBhcnQg
b2YgYSBkb2N1bWVudCB0aGF0IGlzIGJlaW5nIApAQCAtNTIyLDcgKzU1Miw3IEBAIFBhc3NSZWZQ
dHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IFBsdWdpblZpZXc6OmJpbmRpbmdJbnN0YW5jZSgp
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgTlBPYmplY3QqIG9iamVjdCA9
IDA7CiAKLSAgICBpZiAoIW1fcGx1Z2luIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0
dmFsdWUpCisgICAgaWYgKCFtX2lzU3RhcnRlZCB8fCAhbV9wbHVnaW4gfHwgIW1fcGx1Z2luLT5w
bHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBPbiBX
aW5kb3dzLCBjYWxsaW5nIEphdmEncyBOUE5fR2V0VmFsdWUgY2FuIGFsbG93IHRoZSBtZXNzYWdl
IGxvb3AgdG8KQEAgLTU4Miw2ICs2MTIsOSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmFtZXRl
cnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdAogICAg
ICAgICBpZiAobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrUmVtb3ZlV2lu
ZG93bGVzc1ZpZGVvUGFyYW0pICYmIGVxdWFsSWdub3JpbmdDYXNlKHBhcmFtTmFtZXNbaV0sICJ3
aW5kb3dsZXNzdmlkZW8iKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIGlmIChw
YXJhbU5hbWVzW2ldID09ICJwbHVnaW5zcGFnZSIpCisgICAgICAgICAgICBtX3BsdWdpbnNQYWdl
ID0gcGFyYW1WYWx1ZXNbaV07CisKICAgICAgICAgbV9wYXJhbU5hbWVzW3BhcmFtQ291bnRdID0g
Y3JlYXRlVVRGOFN0cmluZyhwYXJhbU5hbWVzW2ldKTsKICAgICAgICAgbV9wYXJhbVZhbHVlc1tw
YXJhbUNvdW50XSA9IGNyZWF0ZVVURjhTdHJpbmcocGFyYW1WYWx1ZXNbaV0pOwogCkBAIC02MTks
NiArNjUyLDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNv
bnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAgICAsIG1fbGFzdE1lc3NhZ2Uo
MCkKICAgICAsIG1faXNDYWxsaW5nUGx1Z2luV25kUHJvYyhmYWxzZSkKICAgICAsIG1fd21Qcmlu
dEhEQygwKQorICAgICwgbV9oYXZlVXBkYXRlZFBsdWdpbldpZGdldChmYWxzZSkKICNlbmRpZgog
I2lmIChQTEFURk9STShRVCkgJiYgUExBVEZPUk0oV0lOX09TKSkgfHwgZGVmaW5lZChYUF9NQUNP
U1gpCiAgICAgLCBtX3dpbmRvdygwKQpAQCAtNjMwLDYgKzY2NCw3IEBAIFBsdWdpblZpZXc6OlBs
dWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5Q
YWNrYWdlKiBwCiAgICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21h
bnVhbFN0cmVhbSgwKQogICAgICwgbV9pc0phdmFTY3JpcHRQYXVzZWQoZmFsc2UpCisgICAgLCBt
X21pbWVUeXBlKG1pbWVUeXBlKQogewogICAgIGlmICghbV9wbHVnaW4pIHsKICAgICAgICAgbV9z
dGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luOwpAQCAtNjQwLDggKzY3NSw2IEBA
IFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXpl
JiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgbV9pbnN0YW5jZS0+bmRhdGEgPSB0aGlzOwog
ICAgIG1faW5zdGFuY2UtPnBkYXRhID0gMDsKIAotICAgIG1fbWltZVR5cGUgPSBtaW1lVHlwZS51
dGY4KCk7Ci0KICAgICBzZXRQYXJhbWV0ZXJzKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAog
ICAgIG1lbXNldCgmbV9ucFdpbmRvdywgMCwgc2l6ZW9mKG1fbnBXaW5kb3cpKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oCmluZGV4IDk1ZDczZGIuLjk1ZDcxZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMTc3
LDYgKzE3NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBmb2N1c1Bs
dWdpbkVsZW1lbnQoKTsKIAorICAgICAgICBjb25zdCBTdHJpbmcmIHBsdWdpbnNQYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9wbHVnaW5zUGFnZTsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQorICAgICAgICBjb25zdCBLVVJMJiB1
cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorCiAjaWYgUExBVEZPUk0oV0lOX09TKSAmJiAh
UExBVEZPUk0oV1gpICYmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBzdGF0
aWMgTFJFU1VMVCBDQUxMQkFDSyBQbHVnaW5WaWV3V25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0s
IExQQVJBTSk7CiAgICAgICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2Fn
ZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CkBAIC0xOTEsMTIgKzE5NSwxNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGJvb2wgaXNDYWxsaW5nUGx1Z2lu
KCk7CiAKKyAgICAgICAgYm9vbCBzdGFydCgpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgUGx1
Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmLCBQbHVnaW5QYWNrYWdl
KiwgRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1l
cywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIGxvYWRNYW51YWxseSk7CiAKICAgICAgICAgdm9pZCBzZXRQYXJhbWV0ZXJzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFy
YW1WYWx1ZXMpOworICAgICAgICBib29sIHN0YXJ0T3JBZGRUb1Vuc3RhcnRlZExpc3QoKTsKKyAg
ICAgICAgdm9pZCByZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCk7CiAgICAgICAg
IHZvaWQgaW5pdCgpOwotICAgICAgICBib29sIHN0YXJ0KCk7CisgICAgICAgIHZvaWQgcGxhdGZv
cm1TdGFydCgpOwogICAgICAgICB2b2lkIHN0b3AoKTsKICAgICAgICAgc3RhdGljIHZvaWQgc2V0
Q3VycmVudFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgICAgICBOUEVycm9yIGxvYWQoY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgc2VuZE5vdGlmaWNhdGlvbiwgdm9pZCogbm90aWZ5
RGF0YSk7CkBAIC0yNDUsOCArMjUzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBp
bnQgbV9wYXJhbUNvdW50OwogICAgICAgICBjaGFyKiogbV9wYXJhbU5hbWVzOwogICAgICAgICBj
aGFyKiogbV9wYXJhbVZhbHVlczsKKyAgICAgICAgU3RyaW5nIG1fcGx1Z2luc1BhZ2U7CiAKLSAg
ICAgICAgQ1N0cmluZyBtX21pbWVUeXBlOworICAgICAgICBTdHJpbmcgbV9taW1lVHlwZTsKICAg
ICAgICAgQ1N0cmluZyBtX3VzZXJBZ2VudDsKIAogICAgICAgICBOUFAgbV9pbnN0YW5jZTsKQEAg
LTI3Miw2ICsyODEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHVuc2lnbmVkIG1f
bGFzdE1lc3NhZ2U7CiAgICAgICAgIGJvb2wgbV9pc0NhbGxpbmdQbHVnaW5XbmRQcm9jOwogICAg
ICAgICBIREMgbV93bVByaW50SERDOworICAgICAgICBib29sIG1faGF2ZVVwZGF0ZWRQbHVnaW5X
aWRnZXQ7CiAjZW5kaWYKIAogI2lmIChQTEFURk9STShRVCkgJiYgUExBVEZPUk0oV0lOX09TKSkg
fHwgZGVmaW5lZChYUF9NQUNPU1gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApp
bmRleCAwNDIyOGI5Li41YzZmNTIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5j
cHAKQEAgLTYwMiw1ICs2MDIsOSBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogICAgIG1fc3Rh
dHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5OwogfQogCit2b2lkIFBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQoKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAgYi9XZWJDb3Jl
L3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDcyMWVjMjkuLmVkM2RhZDcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtNzY3LDYgKzc2NywxMSBAQCBO
UEVycm9yIFBsdWdpblZpZXc6OmhhbmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mIGJ1ZmZl
ciwgdWludDMyIGxlbiwgY29uc3QgYwogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAor
dm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKK3sKK30KKworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbHNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IDg4
M2M5YWEuLjE0NWJiMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC01MTcs
NCArNTE3LDkgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICBtX3N0YXR1cyA9IFBsdWdp
blN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKIH0KIAordm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bVN0YXJ0KCkKK3sKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3dp
bi9QbHVnaW5WaWV3V2luLmNwcAppbmRleCAxYTVjMThjLi5lZjlhNDAwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy93aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTM2OSw3ICszNjksNyBAQCB2b2lkIFBsdWdpblZp
ZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgbV9jbGlwUmVjdCA9IHdpbmRvd0NsaXBSZWN0
KCk7CiAgICAgbV9jbGlwUmVjdC5tb3ZlKC1tX3dpbmRvd1JlY3QueCgpLCAtbV93aW5kb3dSZWN0
LnkoKSk7CiAKLSAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiAobV93aW5kb3dSZWN0
ICE9IG9sZFdpbmRvd1JlY3QgfHwgbV9jbGlwUmVjdCAhPSBvbGRDbGlwUmVjdCkpIHsKKyAgICBp
ZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiAoIW1faGF2ZVVwZGF0ZWRQbHVnaW5XaWRnZXQg
fHwgbV93aW5kb3dSZWN0ICE9IG9sZFdpbmRvd1JlY3QgfHwgbV9jbGlwUmVjdCAhPSBvbGRDbGlw
UmVjdCkpIHsKICAgICAgICAgSFJHTiByZ247CiAKICAgICAgICAgc2V0Q2FsbGluZ1BsdWdpbih0
cnVlKTsKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldp
ZGdldCgpCiAgICAgICAgICAgICA6OlNldFdpbmRvd1JnbihwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LCByZ24sIFRSVUUpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fd2luZG93UmVjdCAhPSBv
bGRXaW5kb3dSZWN0KQorICAgICAgICBpZiAoIW1faGF2ZVVwZGF0ZWRQbHVnaW5XaWRnZXQgfHwg
bV93aW5kb3dSZWN0ICE9IG9sZFdpbmRvd1JlY3QpCiAgICAgICAgICAgICA6Ok1vdmVXaW5kb3co
cGxhdGZvcm1QbHVnaW5XaWRnZXQoKSwgbV93aW5kb3dSZWN0LngoKSwgbV93aW5kb3dSZWN0Lnko
KSwgbV93aW5kb3dSZWN0LndpZHRoKCksIG1fd2luZG93UmVjdC5oZWlnaHQoKSwgVFJVRSk7CiAK
ICAgICAgICAgaWYgKGNsaXBUb1plcm9SZWN0KSB7CkBAIC0zOTYsNiArMzk2LDggQEAgdm9pZCBQ
bHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgICB9CiAKICAgICAgICAgc2V0
Q2FsbGluZ1BsdWdpbihmYWxzZSk7CisKKyAgICAgICAgbV9oYXZlVXBkYXRlZFBsdWdpbldpZGdl
dCA9IHRydWU7CiAgICAgfQogfQogCkBAIC05ODksNiArOTkxLDggQEAgdm9pZCBQbHVnaW5WaWV3
Ojpmb3JjZVJlZHJhdygpCiAKIFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKIHsKKyAgICByZW1v
dmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCk7CisKICAgICBzdG9wKCk7CiAKICAgICBk
ZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7CkBAIC0xMDIyLDExICsxMDI2LDE5IEBAIHZvaWQg
UGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIXN0
YXJ0KCkpIHsKKyAgICBpZiAoIXN0YXJ0T3JBZGRUb1Vuc3RhcnRlZExpc3QoKSkgewogICAgICAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxs
eTsKK30KKwordm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKK3sKKyAgICBBU1NFUlQo
bV9pc1N0YXJ0ZWQpOworICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRT
dWNjZXNzZnVsbHkpOworCiAgICAgaWYgKG1faXNXaW5kb3dlZCkgewogICAgICAgICByZWdpc3Rl
clBsdWdpblZpZXcoKTsKICNpZiAhUExBVEZPUk0oV0lOQ0UpCkBAIC0xMDY1LDEwICsxMDc3LDEw
IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIG1fbnBXaW5kb3cud2luZG93ID0g
MDsKICAgICB9CiAKKyAgICB1cGRhdGVQbHVnaW5XaWRnZXQoKTsKKwogICAgIGlmICghbV9wbHVn
aW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwp
KQogICAgICAgICBzZXROUFdpbmRvd1JlY3QoZnJhbWVSZWN0KCkpOwotCi0gICAgbV9zdGF0dXMg
PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggODZkNWZkNC4uOWQ5YWEyMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAwOS0w
Ny0yOSAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIFBh
cnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzU2OTgxMTM+IFNhZmFyaSBzaG91bGRuJ3QgYXV0by1hY3Rp
dmF0ZQorICAgICAgICBwbHVnLWlucyBpbiBiYWNrZ3JvdW5kIHRhYnMgKG1ha2UgV2luIGNvbnNp
c3RlbnQgd2l0aCBNYWMpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGw6CisgICAgICAgIEFkZCBz
ZXRDYW5TdGFydFBsdWdpbnMoKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxUb1N0YXJ0UGx1Z2luKToKKyAgICAgICAgQWRkZWQ7IGNvZGUgbW92ZWQgZnJvbSBj
cmVhdGVQbHVnaW4oKS4gTW9kaWZpZWQgdG8gb2J0YWluIHRoZSBwbHVnLWluJ3MKKyAgICAgICAg
cGFnZSBVUkwsIHRoZSBwbHVnLWlucyAicGx1Zy1pbnMgcGFnZSIgcGFyYW1ldGVyIHZhbHVlLCBh
bmQgdGhlCisgICAgICAgIHBsdWctaW4ncyBNSU1FIHR5cGUgYnkgY2FsbGluZyBnZXR0ZXIgZnVu
Y3Rpb25zIG9uIHRoZSBwYXNzZWQKKyAgICAgICAgUGx1Z2luVmlldy4KKyAgICAgICAgKFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgorICAgICAgICBJZiB0aGUgcGx1Zy1pbiBz
dGF0dXMgaXMgbm90ICJzdWNjZXNzLCIgY2FsbAorICAgICAgICBkaXNwYXRjaERpZEZhaWxUb1N0
YXJ0UGx1Z2luKCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorICAgICAgICBEZWNsYXJlIGFuIG92ZXJyaWRlIG9mIGRpc3BhdGNoRGlkRmFpbFRv
U3RhcnRQbHVnaW4oKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmll
d1duZFByb2MpOgorICAgICAgICBBZGQgYSBtaXNzaW5nICkgdG8gYSBjb21tZW50LgorICAgICAg
ICAoV2ViVmlldzo6c2V0Q2FuU3RhcnRQbHVnaW5zKToKKyAgICAgICAgQ2FsbCB0aGUgUGFnZSdz
IHNldENhblN0YXJ0UGx1Z2lucygpIGZ1bmN0aW9uLgorCisgICAgICAgICogV2ViVmlldy5oOgor
CiAyMDA5LTA3LTI4ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBGYWxrZW5idXJnLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwgYi9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAppbmRleCA0MzYyZjg5Li5lNDY4MGExIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAorKysgYi9X
ZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbApAQCAtMTU5LDQgKzE1OSw2
IEBAIGludGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgc2V0
TWVtb3J5Q2FjaGVEZWxlZ2F0ZUNhbGxzRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CiAKICAg
ICBIUkVTVUxUIHNldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dlZChbaW5dIEJPT0wgYXJlQWxsb3dl
ZCk7CisKKyAgICBIUkVTVUxUIHNldENhblN0YXJ0UGx1Z2lucyhbaW5dIEJPT0wgY2FuU3RhcnRQ
bHVnaW5zKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggZDY4NmUyOS4uMGZlYTM0OCAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTYzMSw3MyAr
NjMxLDMyIEBAIFBhc3NSZWZQdHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVG
cmFtZShjb25zdCBLVVJMJiBVUkwsIGNvbnN0IFN0cmluCiAgICAgcmV0dXJuIGNoaWxkRnJhbWUu
cmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLCBIVE1MUGx1Z0luRWxlbWVu
dCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBib29sIGxvYWRNYW51YWxseSkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVnaW4oY29uc3QgUGx1Z2luVmlldyogcGx1Z2luVmlldykg
Y29uc3QKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwog
Ci0gICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aTsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYlZp
ZXctPnVpRGVsZWdhdGUoJnVpKSkgJiYgdWkpIHsKLSAgICAgICAgQ09NUHRyPElXZWJVSURlbGVn
YXRlUHJpdmF0ZT4gdWlQcml2YXRlKFF1ZXJ5LCB1aSk7Ci0KLSAgICAgICAgaWYgKHVpUHJpdmF0
ZSkgewotICAgICAgICAgICAgLy8gQXNzZW1ibGUgdGhlIHZpZXcgYXJndW1lbnRzIGluIGEgcHJv
cGVydHkgYmFnLgotICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gdmlld0FyZ3Vt
ZW50czsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXJhbU5hbWVzLnNp
emUoKTsgaSsrKSAKLSAgICAgICAgICAgICAgICB2aWV3QXJndW1lbnRzLnNldChwYXJhbU5hbWVz
W2ldLCBwYXJhbVZhbHVlc1tpXSk7Ci0gICAgICAgICAgICBDT01QdHI8SVByb3BlcnR5QmFnPiB2
aWV3QXJndW1lbnRzQmFnKEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxTdHJpbmc+OjphZG9wdCh2
aWV3QXJndW1lbnRzKSk7Ci0gICAgICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGNvbnRhaW5p
bmdFbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50KSk7
Ci0KLSAgICAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBDT01WYXJpYW50PiBhcmd1bWVudHM7Ci0K
LSAgICAgICAgICAgIGFyZ3VtZW50cy5zZXQoV2ViRW1iZWRkZWRWaWV3QXR0cmlidXRlc0tleSwg
dmlld0FyZ3VtZW50c0JhZyk7Ci0gICAgICAgICAgICBhcmd1bWVudHMuc2V0KFdlYkVtYmVkZGVk
Vmlld0Jhc2VVUkxLZXksIHVybC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBhcmd1bWVudHMuc2V0
KFdlYkVtYmVkZGVkVmlld0NvbnRhaW5pbmdFbGVtZW50S2V5LCBjb250YWluaW5nRWxlbWVudCk7
Ci0gICAgICAgICAgICBhcmd1bWVudHMuc2V0KFdlYkVtYmVkZGVkVmlld01JTUVUeXBlS2V5LCBt
aW1lVHlwZSk7Ci0KLSAgICAgICAgICAgIENPTVB0cjxJUHJvcGVydHlCYWc+IGFyZ3VtZW50c0Jh
ZyhBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8Q09NVmFyaWFudD46OmFkb3B0KGFyZ3VtZW50cykp
OwotCi0gICAgICAgICAgICBDT01QdHI8SVdlYkVtYmVkZGVkVmlldz4gdmlldzsKLSAgICAgICAg
ICAgIEhSRVNVTFQgcmVzdWx0ID0gdWlQcml2YXRlLT5lbWJlZGRlZFZpZXdXaXRoQXJndW1lbnRz
KHdlYlZpZXcsIG1fd2ViRnJhbWUsIGFyZ3VtZW50c0JhZy5nZXQoKSwgJnZpZXcpOwotICAgICAg
ICAgICAgaWYgKFNVQ0NFRURFRChyZXN1bHQpKSB7Ci0gICAgICAgICAgICAgICAgSFdORCBwYXJl
bnRXaW5kb3c7Ci0gICAgICAgICAgICAgICAgSFJFU1VMVCBociA9IHdlYlZpZXctPnZpZXdXaW5k
b3coKE9MRV9IQU5ETEUqKSZwYXJlbnRXaW5kb3cpOwotICAgICAgICAgICAgICAgIEFTU0VSVChT
VUNDRUVERUQoaHIpKTsKLQotICAgICAgICAgICAgICAgIHJldHVybiBFbWJlZGRlZFdpZGdldDo6
Y3JlYXRlKHZpZXcuZ2V0KCksIGVsZW1lbnQsIHBhcmVudFdpbmRvdywgcGx1Z2luU2l6ZSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBjb3Jl
KG1fd2ViRnJhbWUpOwotICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBwbHVnaW5WaWV3ID0gUGx1Z2lu
Vmlldzo6Y3JlYXRlKGZyYW1lLCBwbHVnaW5TaXplLCBlbGVtZW50LCB1cmwsIHBhcmFtTmFtZXMs
IHBhcmFtVmFsdWVzLCBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsKLQotICAgIGlmIChwbHVnaW5W
aWV3LT5zdGF0dXMoKSA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCi0gICAgICAg
IHJldHVybiBwbHVnaW5WaWV3OwotCiAgICAgQ09NUHRyPElXZWJSZXNvdXJjZUxvYWREZWxlZ2F0
ZT4gcmVzb3VyY2VMb2FkRGVsZWdhdGU7Ci0KICAgICBpZiAoRkFJTEVEKHdlYlZpZXctPnJlc291
cmNlTG9hZERlbGVnYXRlKCZyZXNvdXJjZUxvYWREZWxlZ2F0ZSkpKQotICAgICAgICByZXR1cm4g
cGx1Z2luVmlldzsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURp
Y3Rpb25hcnlSZWY+IHVzZXJJbmZvKEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
MCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlW
YWx1ZUNhbGxCYWNrcykpOwogCi0gICAgc2l6ZV90IHNpemUgPSBwYXJhbU5hbWVzLnNpemUoKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICBpZiAocGFy
YW1OYW1lc1tpXSA9PSAicGx1Z2luc3BhZ2UiKSB7Ci0gICAgICAgICAgICBLVVJMIHBsdWdpblBh
Z2VVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoZGVwcmVjYXRlZFBhcnNlVVJM
KHBhcmFtVmFsdWVzW2ldKSk7Ci0gICAgICAgICAgICBpZiAocGx1Z2luUGFnZVVSTC5wcm90b2Nv
bEluSFRUUEZhbWlseSgpKSB7Ci0gICAgICAgICAgICAgICAgc3RhdGljIENGU3RyaW5nUmVmIGtl
eSA9IE1hcnNoYWxsaW5nSGVscGVyczo6TFBDT0xFU1RSVG9DRlN0cmluZ1JlZihXZWJLaXRFcnJv
clBsdWdJblBhZ2VVUkxTdHJpbmdLZXkpOwotICAgICAgICAgICAgICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gc3RyKEFkb3B0Q0YsIHBsdWdpblBhZ2VVUkwuc3RyaW5nKCkuY3JlYXRlQ0ZTdHJp
bmcoKSk7Ci0gICAgICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUodXNlckluZm8uZ2V0
KCksIGtleSwgc3RyLmdldCgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwor
ICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUobV93ZWJGcmFtZSk7CisgICAgQVNTRVJUKGZyYW1lID09
IHBsdWdpblZpZXctPnBhcmVudEZyYW1lKCkpOworCisgICAgaWYgKCFwbHVnaW5WaWV3LT5wbHVn
aW5zUGFnZSgpLmlzTnVsbCgpKSB7CisgICAgICAgIEtVUkwgcGx1Z2luUGFnZVVSTCA9IGZyYW1l
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFyc2VVUkwocGx1Z2luVmlldy0+
cGx1Z2luc1BhZ2UoKSkpOworICAgICAgICBpZiAocGx1Z2luUGFnZVVSTC5wcm90b2NvbEluSFRU
UEZhbWlseSgpKSB7CisgICAgICAgICAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYga2V5ID0gTWFyc2hh
bGxpbmdIZWxwZXJzOjpMUENPTEVTVFJUb0NGU3RyaW5nUmVmKFdlYktpdEVycm9yUGx1Z0luUGFn
ZVVSTFN0cmluZ0tleSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHN0cihB
ZG9wdENGLCBwbHVnaW5QYWdlVVJMLnN0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUodXNlckluZm8uZ2V0KCksIGtleSwgc3RyLmdldCgp
KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghbWltZVR5cGUuaXNOdWxsKCkpIHsKKyAg
ICBpZiAoIXBsdWdpblZpZXctPm1pbWVUeXBlKCkuaXNOdWxsKCkpIHsKICAgICAgICAgc3RhdGlj
IENGU3RyaW5nUmVmIGtleSA9IE1hcnNoYWxsaW5nSGVscGVyczo6TFBDT0xFU1RSVG9DRlN0cmlu
Z1JlZihXZWJLaXRFcnJvck1JTUVUeXBlS2V5KTsKIAotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHN0cihBZG9wdENGLCBtaW1lVHlwZS5jcmVhdGVDRlN0cmluZygpKTsKKyAgICAgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdHIoQWRvcHRDRiwgcGx1Z2luVmlldy0+bWltZVR5cGUo
KS5jcmVhdGVDRlN0cmluZygpKTsKICAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUodXNlcklu
Zm8uZ2V0KCksIGtleSwgc3RyLmdldCgpKTsKICAgICB9CiAKQEAgLTcyNSwxMCArNjg0LDU2IEBA
IFBhc3NSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKGNv
bnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiAKLSAgICBSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktp
dEVycm9yRG9tYWluKSwgZXJyb3JDb2RlLCB1cmwuc3RyaW5nKCksIFN0cmluZygpKTsKKyAgICBS
ZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoU3RyaW5nKFdlYktpdEVycm9yRG9tYWluKSwgZXJy
b3JDb2RlLCBwbHVnaW5WaWV3LT51cmwoKS5zdHJpbmcoKSwgU3RyaW5nKCkpOwogICAgIENPTVB0
cjxJV2ViRXJyb3I+IGVycm9yKEFkb3B0Q09NLCBXZWJFcnJvcjo6Y3JlYXRlSW5zdGFuY2UocmVz
b3VyY2VFcnJvciwgdXNlckluZm9CYWcuZ2V0KCkpKTsKICAgICAgCiAgICAgcmVzb3VyY2VMb2Fk
RGVsZWdhdGUtPnBsdWdJbkZhaWxlZFdpdGhFcnJvcih3ZWJWaWV3LCBlcnJvci5nZXQoKSwgZ2V0
V2ViRGF0YVNvdXJjZShmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCkpKTsKK30KKwor
UGFzc1JlZlB0cjxXaWRnZXQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29u
c3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwgSFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBsb2Fk
TWFudWFsbHkpCit7CisgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXco
KTsKKworICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CisgICAgaWYgKFNVQ0NFRURFRCh3
ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpICYmIHVpKSB7CisgICAgICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZVByaXZhdGU+IHVpUHJpdmF0ZShRdWVyeSwgdWkpOworCisgICAgICAgIGlmICh1aVBy
aXZhdGUpIHsKKyAgICAgICAgICAgIC8vIEFzc2VtYmxlIHRoZSB2aWV3IGFyZ3VtZW50cyBpbiBh
IHByb3BlcnR5IGJhZy4KKyAgICAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZpZXdB
cmd1bWVudHM7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFyYW1OYW1l
cy5zaXplKCk7IGkrKykgCisgICAgICAgICAgICAgICAgdmlld0FyZ3VtZW50cy5zZXQocGFyYW1O
YW1lc1tpXSwgcGFyYW1WYWx1ZXNbaV0pOworICAgICAgICAgICAgQ09NUHRyPElQcm9wZXJ0eUJh
Zz4gdmlld0FyZ3VtZW50c0JhZyhBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8U3RyaW5nPjo6YWRv
cHQodmlld0FyZ3VtZW50cykpOworICAgICAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBjb250
YWluaW5nRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVu
dCkpOworCisgICAgICAgICAgICBIYXNoTWFwPFN0cmluZywgQ09NVmFyaWFudD4gYXJndW1lbnRz
OworCisgICAgICAgICAgICBhcmd1bWVudHMuc2V0KFdlYkVtYmVkZGVkVmlld0F0dHJpYnV0ZXNL
ZXksIHZpZXdBcmd1bWVudHNCYWcpOworICAgICAgICAgICAgYXJndW1lbnRzLnNldChXZWJFbWJl
ZGRlZFZpZXdCYXNlVVJMS2V5LCB1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgYXJndW1lbnRz
LnNldChXZWJFbWJlZGRlZFZpZXdDb250YWluaW5nRWxlbWVudEtleSwgY29udGFpbmluZ0VsZW1l
bnQpOworICAgICAgICAgICAgYXJndW1lbnRzLnNldChXZWJFbWJlZGRlZFZpZXdNSU1FVHlwZUtl
eSwgbWltZVR5cGUpOworCisgICAgICAgICAgICBDT01QdHI8SVByb3BlcnR5QmFnPiBhcmd1bWVu
dHNCYWcoQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPENPTVZhcmlhbnQ+OjphZG9wdChhcmd1bWVu
dHMpKTsKKworICAgICAgICAgICAgQ09NUHRyPElXZWJFbWJlZGRlZFZpZXc+IHZpZXc7CisgICAg
ICAgICAgICBIUkVTVUxUIHJlc3VsdCA9IHVpUHJpdmF0ZS0+ZW1iZWRkZWRWaWV3V2l0aEFyZ3Vt
ZW50cyh3ZWJWaWV3LCBtX3dlYkZyYW1lLCBhcmd1bWVudHNCYWcuZ2V0KCksICZ2aWV3KTsKKyAg
ICAgICAgICAgIGlmIChTVUNDRUVERUQocmVzdWx0KSkgeworICAgICAgICAgICAgICAgIEhXTkQg
cGFyZW50V2luZG93OworICAgICAgICAgICAgICAgIEhSRVNVTFQgaHIgPSB3ZWJWaWV3LT52aWV3
V2luZG93KChPTEVfSEFORExFKikmcGFyZW50V2luZG93KTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoU1VDQ0VFREVEKGhyKSk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gRW1iZWRkZWRXaWRn
ZXQ6OmNyZWF0ZSh2aWV3LmdldCgpLCBlbGVtZW50LCBwYXJlbnRXaW5kb3csIHBsdWdpblNpemUp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgRnJhbWUqIGZyYW1lID0g
Y29yZShtX3dlYkZyYW1lKTsKKyAgICBSZWZQdHI8UGx1Z2luVmlldz4gcGx1Z2luVmlldyA9IFBs
dWdpblZpZXc6OmNyZWF0ZShmcmFtZSwgcGx1Z2luU2l6ZSwgZWxlbWVudCwgdXJsLCBwYXJhbU5h
bWVzLCBwYXJhbVZhbHVlcywgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7CisKKyAgICBpZiAocGx1
Z2luVmlldy0+c3RhdHVzKCkgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KQorICAg
ICAgICByZXR1cm4gcGx1Z2luVmlldzsKKworICAgIGRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVn
aW4ocGx1Z2luVmlldy5nZXQoKSk7CiAKICAgICByZXR1cm4gcGx1Z2luVmlldzsKIH0KZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5
MDI3YTgwLi5lZjdlOTgyIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNSw2ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBQbHVnaW5NYW51YWxMb2FkZXI7CisgICAgY2xhc3MgUGx1Z2luVmlldzsK
IH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIENPTVB0cjsKQEAgLTEwNyw2ICsxMDgs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
Y29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRGYWlsVG9TdGFydFBsdWdpbihjb25zdCBXZWJDb3JlOjpQbHVnaW5WaWV3
KikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBXZWJGcmFtZUxvYWRlckNsaWVudChXZWJGcmFt
ZSopOwogICAgIH5XZWJGcmFtZUxvYWRlckNsaWVudCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggOGQwYjZjZi4uMmNh
ZWQ2MSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC0xODk2LDcgKzE4OTYsNyBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFD
SyBXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwg
TAogICAgICAgICBjYXNlIFdNX1NIT1dXSU5ET1c6CiAgICAgICAgICAgICBsUmVzdWx0ID0gRGVm
V2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CiAgICAgICAgICAgICBp
ZiAod1BhcmFtID09IDApCi0gICAgICAgICAgICAgICAgLy8gVGhlIHdpbmRvdyBpcyBiZWluZyBo
aWRkZW4gKGUuZy4sIGJlY2F1c2Ugd2Ugc3dpdGNoZWQgdGFicy4KKyAgICAgICAgICAgICAgICAv
LyBUaGUgd2luZG93IGlzIGJlaW5nIGhpZGRlbiAoZS5nLiwgYmVjYXVzZSB3ZSBzd2l0Y2hlZCB0
YWJzKS4KICAgICAgICAgICAgICAgICAvLyBOdWxsIG91dCBvdXIgYmFja2luZyBzdG9yZS4KICAg
ICAgICAgICAgICAgICB3ZWJWaWV3LT5kZWxldGVCYWNraW5nU3RvcmUoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtNTMxNiw2ICs1MzE2LDEyIEBAIEhSRVNVTFQgV2ViVmlldzo6c2V0SmF2YVNj
cmlwdFVSTHNBcmVBbGxvd2VkKEJPT0wgYXJlQWxsb3dlZCkKICAgICByZXR1cm4gU19PSzsKIH0K
IAorSFJFU1VMVCBXZWJWaWV3OjpzZXRDYW5TdGFydFBsdWdpbnMoQk9PTCBjYW5TdGFydFBsdWdp
bnMpCit7CisgICAgbV9wYWdlLT5zZXRDYW5TdGFydFBsdWdpbnMoY2FuU3RhcnRQbHVnaW5zKTsK
KyAgICByZXR1cm4gU19PSzsKK30KKwogdm9pZCBXZWJWaWV3Ojpkb3dubG9hZFVSTChjb25zdCBL
VVJMJiB1cmwpCiB7CiAgICAgLy8gSXQncyB0aGUgZGVsZWdhdGUncyBqb2IgdG8gcmVmIHRoZSBX
ZWJEb3dubG9hZCB0byBrZWVwIGl0IGFsaXZlIC0gb3RoZXJ3aXNlIGl0IHdpbGwgYmUKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5oIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXgg
OGM4Y2NjZC4uYTk3ZGQ5NCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIv
V2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTcyOSw2ICs3MjksOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEphdmFTY3JpcHRVUkxzQXJlQWxsb3dl
ZCgKICAgICAgICAgLyogW2luXSAqLyBCT09MIGFyZUFsbG93ZWQpOwogCisgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldENhblN0YXJ0UGx1Z2lucygKKyAgICAgICAgLyog
W2luXSAqLyBCT09MIGNhblN0YXJ0UGx1Z2lucyk7CisKICAgICAvLyBXZWJWaWV3CiAgICAgYm9v
bCBzaG91bGRVc2VFbWJlZGRlZFZpZXcoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtaW1lVHlwZSkg
Y29uc3Q7CiAKLS0gCjEuNi40LnJjMC4xNy5nZDllYjAKCg==
</data>
<flag name="review"
          id="18035"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>