<?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>75489</bug_id>
          
          <creation_ts>2012-01-03 13:56:52 -0800</creation_ts>
          <short_desc>[Qt][WK2] Move Webview initialization code to componentComplete().</short_desc>
          <delta_ts>2012-03-30 10:16:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73364</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529019</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-03 13:56:52 -0800</bug_when>
    <thetext>In order to implement the desired API for WebContext, exposing it on QML (https://bugs.webkit.org/show_bug.cgi?id=73364), we need to guarantee that the webview initialization will only happen after all properties have been set.

Therefore we need to move the init call to QQuickWebView::componentComplete() and to handle properly the properties that will have to be &quot;delayed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529028</commentid>
    <comment_count>1</comment_count>
      <attachid>120988</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-03 14:00:58 -0800</bug_when>
    <thetext>Created attachment 120988
WIP Patch

WIP patch showing how we can achieve what is needed.

The only missing parts here are changelog entries, and possibly to handle font family and font size from QWebPreferences on the same fashion as setAttribute was modified.

Beware that I&apos;m uploading this patch without asking for r? just so I can collect feedback on its current state and also because I still need to give it a try to the WebContext patch itself on top of this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532140</commentid>
    <comment_count>2</comment_count>
      <attachid>121657</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-09 06:12:33 -0800</bug_when>
    <thetext>Created attachment 121657
WIP Patch v2

This is a new version of the WIP patch.

Known issues:

- It doesn&apos;t handle custom scheme API implementation yet. I still need to understand what is needed to delay registerApplicationScheme(scheme-&gt;scheme()) in QQuickWebViewExperimental::schemeDelegates_Append(). For the time being, the test for this API will fail.

- All qml tests are working, simple qml test cases (WebView { ... }) are working but Minibrowser doesn&apos;t show pages on either touch or desktop mode. It might be something we are doing with the properties on Minibrowser qml files.

Having some &quot;informal&quot; feedback on this would be great. :)
I might be a bit biased by the current implementation so I might be missing something big on it.

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534973</commentid>
    <comment_count>3</comment_count>
      <attachid>122272</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 11:02:34 -0800</bug_when>
    <thetext>Created attachment 122272
wip Patch

The previous issues have been fixed. Now all tests are passing and MiniBrowser works, thanks to Zeno and Andras help. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535022</commentid>
    <comment_count>4</comment_count>
      <attachid>122278</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-01-12 11:57:15 -0800</bug_when>
    <thetext>Created attachment 122278
WIP Patch v4

Fixed a bug spotted by snowshoe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535705</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 08:36:04 -0800</bug_when>
    <thetext>Attachment 122278 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/UIProcess/API/qt/qquickwebv...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qwebnavigationhistory.cpp:125:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535707</commentid>
    <comment_count>6</comment_count>
      <attachid>122278</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-01-13 08:41:11 -0800</bug_when>
    <thetext>Comment on attachment 122278
WIP Patch v4

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:567
&gt; +

Unneeded space.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:687
&gt; +    if (d-&gt;isInitialized)

I&apos;m wondering if it&apos;s not better to return 0 than a broken object if asked before isInitialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536777</commentid>
    <comment_count>7</comment_count>
      <attachid>122278</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-01-16 15:02:32 -0800</bug_when>
    <thetext>Comment on attachment 122278
WIP Patch v4

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:873
&gt; +    if (!d-&gt;isInitialized)
&gt; +        return QUrl();

I wonder why do we have so many API that can be called in &quot;wrong time&quot;, i.e. before onComponentLoad.
Couldn&apos;t we assure to be initialized and change the if&apos;s to ASSERT&apos;s?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537828</commentid>
    <comment_count>8</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-01-18 06:30:35 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; In order to implement the desired API for WebContext, exposing it on QML (https://bugs.webkit.org/show_bug.cgi?id=73364), we need to guarantee that the webview initialization will only happen after all properties have been set.
&gt; 
&gt; Therefore we need to move the init call to QQuickWebView::componentComplete() and to handle properly the properties that will have to be &quot;delayed&quot;.

Hmm, I&apos;m still not convinced about the need for a WebContext QML API, and seeing this patch, with all the  init checks and stuff, I&apos;m even more concerned :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592247</commentid>
    <comment_count>9</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2012-03-30 10:16:00 -0700</bug_when>
    <thetext>This was done as part of another patch with Andras.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120988</attachid>
            <date>2012-01-03 14:00:58 -0800</date>
            <delta_ts>2012-01-09 06:12:33 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>0001-Moving-WebView-initialization-to-componentComplete.patch</filename>
            <type>text/plain</type>
            <size>17499</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSA1ODc4YTc0YjE3MzEyOWQwMGMwNmVlNjI5NTljZmQ3YTUzZGM0ZGJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDI3IERlYyAyMDExIDE0OjE1OjEzIC0wMzAwClN1
YmplY3Q6IFtQQVRDSF0gTW92aW5nIFdlYlZpZXcgaW5pdGlhbGl6YXRpb24gdG8gY29tcG9uZW50
Q29tcGxldGUKClNpZ25lZC1vZmYtYnk6IEplc3VzIFNhbmNoZXotUGFsZW5jaWEgPGplc3VzLnBh
bGVuY2lhQG9wZW5ib3NzYS5vcmc+Ci0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcCAgfCAgIDYzICsrKysrKysrKysrKysrKysrLS0KIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggIHwgICAgMiArCiAuLi4v
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggICB8ICAgIDEgKwog
Li4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5LmNwcCAgICAgfCAgIDM2
ICsrKysrKysrLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5
X3BfcC5oICAgfCAgIDEwICsrLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXMuY3BwICAgfCAgIDM3ICsrKysrKysrKysrLQogLi4uL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oICAgfCAgICAyICsKIC4uLi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oIHwgICAgOCArKy0KIDggZmlsZXMgY2hh
bmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDRkYmY5Mzgu
LmY5Njc1YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcApAQCAtNTgsMTEgKzU4LDE1IEBAIFFRdWlja1dlYlZpZXdQcml2YXRlOjpR
UXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICAsIHBvc3RU
cmFuc2l0aW9uU3RhdGUoYWRvcHRQdHIobmV3IFBvc3RUcmFuc2l0aW9uU3RhdGUodGhpcykpKQog
ICAgICwgaXNUcmFuc2l0aW9uaW5nVG9OZXdQYWdlKGZhbHNlKQogICAgICwgcGFnZUlzU3VzcGVu
ZGVkKGZhbHNlKQorICAgICwgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGZhbHNlKQog
ICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCisgICAgLCBpc0luaXRpYWxp
emVkKGZhbHNlKQogewogICAgIHZpZXdwb3J0LT5zZXRGbGFncyhRUXVpY2tJdGVtOjpJdGVtQ2xp
cHNDaGlsZHJlblRvU2hhcGUpOwogICAgIFFPYmplY3Q6OmNvbm5lY3Qodmlld3BvcnQsIFNJR05B
TCh2aXNpYmxlQ2hhbmdlZCgpKSwgdmlld3BvcnQsIFNMT1QoX3Ffb25WaXNpYmxlQ2hhbmdlZCgp
KSk7CiAgICAgcGFnZVZpZXcucmVzZXQobmV3IFFRdWlja1dlYlBhZ2Uodmlld3BvcnQpKTsKKwor
ICAgIG5hdmlnYXRpb25IaXN0b3J5ID0gYWRvcHRQdHIoUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJp
dmF0ZTo6Y3JlYXRlSGlzdG9yeSgpKTsKIH0KIAogUVF1aWNrV2ViVmlld1ByaXZhdGU6On5RUXVp
Y2tXZWJWaWV3UHJpdmF0ZSgpCkBAIC05MCwxNCArOTQsMTMgQEAgdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGEKICAgICBwYWdlTG9hZENsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlTG9hZENsaWVudCh0
b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpLCBxX3B0cikpOwogICAgIHBhZ2VQb2xpY3lDbGllbnQu
cmVzZXQobmV3IFF0V2ViUGFnZVBvbGljeUNsaWVudCh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkp
LCBxX3B0cikpOwogICAgIHBhZ2VVSUNsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSwgcV9wdHIpKTsKLSAgICBuYXZpZ2F0aW9uSGlzdG9y
eSA9IGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3Rvcnko
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSkpOworICAgIG5hdmlnYXRpb25IaXN0b3J5LT5kLT5z
ZXRQYWdlKHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSkpOwogCiAgICAgUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFP
YmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJM
KFFVcmwsIFFVcmwpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVy
bCwgUVVybCkpKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdl
ZChRVXJsKSksIGljb25EYXRhYmFzZSwgU0xPVChyZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkp
KTsKIAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBi
ZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVo
YXZpb3VyKGZhbHNlKTsKICAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIHBhZ2VD
bGllbnQuaW5pdGlhbGl6ZShxX3B0ciwgcGFnZVZpZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0
YSgpLCAmdW5kb0NvbnRyb2xsZXIpOwpAQCAtMTA1LDYgKzEwOCwxMSBAQCB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91cFJlZiBwYQogCiAgICAgLy8gVHJpZ2dlciBzZXR0aW5nIG9mIGNvcnJlY3QgdmlzaWJpbGl0
eSBmbGFncyBhZnRlciBldmVyeXRoaW5nIHdhcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkLgog
ICAgIF9xX29uVmlzaWJsZUNoYW5nZWQoKTsKKworICAgIGlmIChwcmVmZXJlbmNlcykKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPmQtPnNldFdlYlZpZXdQcml2YXRlKHRoaXMpOworCisgICAgaXNJbml0
aWFsaXplZCA9IHRydWU7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmVuYWJsZU1v
dXNlRXZlbnRzKCkKQEAgLTEzNSw2ICsxNDMsMTAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6aW5pdGlhbGl6ZURlc2t0b3AoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgaW50ZXJh
Y3Rpb25FbmdpbmUucmVzZXQoMCk7CiAgICAgcGFnZVZpZXctPmQtPmV2ZW50SGFuZGxlci0+c2V0
Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZSgwKTsKICAgICBlbmFibGVNb3VzZUV2ZW50cygpOwor
CisgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgb3VyIGdlb21ldHJ5LgorICAgIHBhZ2VWaWV3LT5z
ZXRXaWR0aCh2aWV3cG9ydC0+d2lkdGgoKSk7CisgICAgcGFnZVZpZXctPnNldEhlaWdodCh2aWV3
cG9ydC0+aGVpZ2h0KCkpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFs
aXplVG91Y2goUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCkBAIC01MDAsOSArNTEyLDEzIEBAIHZv
aWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91
cihib29sIGVuYWJsZSkKIAogICAgIC8vIERvIG5vdCBndWFyZCwgdGVzdGluZyBmb3IgdGhlIHNh
bWUgdmFsdWUsIGFzIHdlIGNhbGwgdGhpcyBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4KIAorICAgIHVz
ZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91ciA9IGVuYWJsZTsKKworICAgIGlmICghaXNJbml0
aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgd2ViUGFnZVByb3h5LT5zZXRVc2VGaXhl
ZExheW91dCghZW5hYmxlKTsKIAotICAgIHVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91ciA9
IGVuYWJsZTsKICAgICBpZiAodXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKQogICAgICAg
ICBpbml0aWFsaXplRGVza3RvcChxKTsKICAgICBlbHNlCkBAIC01NDgsNiArNTY0LDcgQEAgdm9p
ZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKICAgICBBU1NFUlQoZW5hYmxlZCAhPSBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxl
ZCk7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBoYXZlIHRvIGtlZXAgdGhpcyBpbmZvcm1h
dGlvbiBpbiBib3RoIHByb2Nlc3NlcyBhbmQgdGhlIHNldHRpbmcgaXMgYXN5bmNocm9ub3VzLgog
ICAgIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkID0gZW5hYmxlZDsKKwogICAgIGNvbnRleHQt
PnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCh3ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQp
OwogfQogCkBAIC02NjQsNyArNjgxLDExIEBAIFFXZWJQcmVmZXJlbmNlcyogUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6cHJlZmVyZW5jZXMoKSBjb25zdAogewogICAgIFFRdWlja1dlYlZpZXdQ
cml2YXRlKiBjb25zdCBkID0gZF9wdHI7CiAgICAgaWYgKCFkLT5wcmVmZXJlbmNlcykKLSAgICAg
ICAgZC0+cHJlZmVyZW5jZXMgPSBhZG9wdFB0cihRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVh
dGVQcmVmZXJlbmNlcyhkKSk7CisgICAgICAgIGQtPnByZWZlcmVuY2VzID0gYWRvcHRQdHIoUVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoKSk7CisKKyAgICBpZiAoZC0+
aXNJbml0aWFsaXplZCkKKyAgICAgICAgZC0+cHJlZmVyZW5jZXMtPmQtPnNldFdlYlZpZXdQcml2
YXRlKGQpOworCiAgICAgcmV0dXJuIGQtPnByZWZlcmVuY2VzLmdldCgpOwogfQogCkBAIC03MjMs
OSArNzQ0LDYgQEAgUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJl
bnQpCiAgICAgLCBkX3B0cihuZXcgUVF1aWNrV2ViVmlld1ByaXZhdGUodGhpcykpCiAgICAgLCBt
X2V4cGVyaW1lbnRhbChuZXcgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCh0aGlzKSkKIHsKLSAg
ICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgZC0+aW5pdGlhbGl6ZSgpOwotICAgIGQtPmluaXRp
YWxpemVUb3VjaCh0aGlzKTsKIH0KIAogUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBRUXVpY2tJ
dGVtKiBwYXJlbnQpCkBAIC03ODEsNiArNzk5LDggQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxv
YWQoKQogUVVybCBRUXVpY2tXZWJWaWV3Ojp1cmwoKSBjb25zdAogewogICAgIFFfRChjb25zdCBR
UXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVy
biBRVXJsKCk7CiAgICAgUmVmUHRyPFdlYkZyYW1lUHJveHk+IG1haW5GcmFtZSA9IGQtPndlYlBh
Z2VQcm94eS0+bWFpbkZyYW1lKCk7CiAgICAgaWYgKCFtYWluRnJhbWUpCiAgICAgICAgIHJldHVy
biBRVXJsKCk7CkBAIC03OTAsMzAgKzgxMCw0MCBAQCBRVXJsIFFRdWlja1dlYlZpZXc6OnVybCgp
IGNvbnN0CiBRVXJsIFFRdWlja1dlYlZpZXc6Omljb24oKSBjb25zdAogewogICAgIFFfRChjb25z
dCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJl
dHVybiBRVXJsKCk7CiAgICAgcmV0dXJuIGQtPm1faWNvblVSTDsKIH0KIAogaW50IFFRdWlja1dl
YlZpZXc6OmxvYWRQcm9ncmVzcygpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZp
ZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIGQtPnBhZ2VMb2FkQ2xpZW50LT5sb2FkUHJvZ3Jlc3MoKTsKIH0KIAogYm9vbCBRUXVp
Y2tXZWJWaWV3OjpjYW5Hb0JhY2soKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJW
aWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gZC0+d2ViUGFnZVByb3h5LT5jYW5Hb0JhY2soKTsKIH0KIAogYm9vbCBRUXVp
Y2tXZWJWaWV3OjpjYW5Hb0ZvcndhcmQoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tX
ZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICByZXR1cm4gZC0+d2ViUGFnZVByb3h5LT5jYW5Hb0ZvcndhcmQoKTsKIH0KIAogYm9v
bCBRUXVpY2tXZWJWaWV3Ojpsb2FkaW5nKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNr
V2ViVmlldyk7CisgICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgUmVmUHRyPFdlYktpdDo6V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2Vi
UGFnZVByb3h5LT5tYWluRnJhbWUoKTsKICAgICByZXR1cm4gbWFpbkZyYW1lICYmICEoV2ViRnJh
bWVQcm94eTo6TG9hZFN0YXRlRmluaXNoZWQgPT0gbWFpbkZyYW1lLT5sb2FkU3RhdGUoKSk7CiB9
CkBAIC04MjEsNiArODUxLDggQEAgYm9vbCBRUXVpY2tXZWJWaWV3Ojpsb2FkaW5nKCkgY29uc3QK
IGJvb2wgUVF1aWNrV2ViVmlldzo6Y2FuUmVsb2FkKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3Qg
UVF1aWNrV2ViVmlldyk7CisgICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgUmVmUHRyPFdlYktpdDo6V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0g
ZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKTsKICAgICBpZiAobWFpbkZyYW1lKQogICAgICAg
ICByZXR1cm4gKFdlYkZyYW1lUHJveHk6OkxvYWRTdGF0ZUZpbmlzaGVkID09IG1haW5GcmFtZS0+
bG9hZFN0YXRlKCkpOwpAQCAtODMwLDYgKzg2Miw4IEBAIGJvb2wgUVF1aWNrV2ViVmlldzo6Y2Fu
UmVsb2FkKCkgY29uc3QKIFFTdHJpbmcgUVF1aWNrV2ViVmlldzo6dGl0bGUoKSBjb25zdAogewog
ICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQp
CisgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgcmV0dXJuIGQtPndlYlBhZ2VQcm94eS0+
cGFnZVRpdGxlKCk7CiB9CiAKQEAgLTg1Miw3ICs4ODYsMTIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogdm9pZCBRUXVpY2tXZWJWaWV3OjpnZW9tZXRyeUNoYW5n
ZWQoY29uc3QgUVJlY3RGJiBuZXdHZW9tZXRyeSwgY29uc3QgUVJlY3RGJiBvbGRHZW9tZXRyeSkK
IHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQp
CisgICAgICAgIHJldHVybjsKKwogICAgIFFRdWlja0l0ZW06Omdlb21ldHJ5Q2hhbmdlZChuZXdH
ZW9tZXRyeSwgb2xkR2VvbWV0cnkpOworCiAgICAgaWYgKG5ld0dlb21ldHJ5LnNpemUoKSAhPSBv
bGRHZW9tZXRyeS5zaXplKCkpIHsKICAgICAgICAgaWYgKGQtPnVzZVRyYWRpdGlvbmFsRGVza3Rv
cEJlaGF2aW91cikgewogICAgICAgICAgICAgZC0+cGFnZVZpZXctPnNldFdpZHRoKG5ld0dlb21l
dHJ5LndpZHRoKCkpOwpAQCAtODk0LDQgKzkzMywxNCBAQCB2b2lkIFFRdWlja1dlYlZpZXc6Omxv
YWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwpCiAgICAgZC0+
d2ViUGFnZVByb3h5LT5sb2FkSFRNTFN0cmluZyhodG1sLCBiYXNlVXJsLnRvU3RyaW5nKCkpOwog
fQogCit2b2lkIFFRdWlja1dlYlZpZXc6OmNvbXBvbmVudENvbXBsZXRlKCkKK3sKKyAgICBRX0Qo
UVF1aWNrV2ViVmlldyk7CisgICAgZC0+aW5pdGlhbGl6ZSgpOworCisgICAgLy8gSW5pdGlhbGl6
ZSB2aWV3IGNvcnJlY3RseSBhcyBkZXNrdG9wIG9yIHRvdWNoLCBhY2NvcmRpbmcgdG8KKyAgICAv
LyB0aGUgZXhwZXJpbWVudGFsIHByb3BlcnR5IHVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91
ci4KKyAgICBkLT5zZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoZC0+dXNlVHJhZGl0
aW9uYWxEZXNrdG9wQmVoYXZpb3VyKTsKK30KKwogI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJ2aWV3
X3AuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wLmgKaW5kZXggNDIwNDUzZC4uY2E5YzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC05NCw2ICs5NCw4IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOyAvLyBPbmx5IG5l
ZWRlZCBieSBXVFIuCiAKKyAgICB2aXJ0dWFsIHZvaWQgY29tcG9uZW50Q29tcGxldGUoKTsKKwog
cHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKICAgICB2b2lkIGxv
YWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwgPSBRVXJsKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
X3BfcC5oCmluZGV4IDNiOTk5MjguLmM1ZjM1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTE2Myw2ICsxNjMsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyOwogICAg
IGJvb2wgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgUVVybCBtX2ljb25VUkw7Cisg
ICAgYm9vbCBpc0luaXRpYWxpemVkOwogfTsKIAogI2VuZGlmIC8vIHFxdWlja3dlYnZpZXdfcF9w
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmln
YXRpb25oaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5h
dmlnYXRpb25oaXN0b3J5LmNwcAppbmRleCBmZjc3ZGFlLi40ZTU0MTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3Rv
cnkuY3BwCkBAIC00MywzNiArNDMsNDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAot
UVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFBy
aXZhdGUoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdCkKLSAgICA6IG1fYmFja0ZvcndhcmRMaXN0
KGxpc3QpCi0gICAgLCBpbmRleFNpZ24oMCkKK1FXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0
ZTo6UVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlKCkKKyAgICA6IGluZGV4U2lnbigwKQog
ewogfQogCi1RV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCogUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQ
cml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlz
dCkKK1FXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKiBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZh
dGU6OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbCgpCiB7CiAgICAgUVdlYk5hdmlnYXRpb25MaXN0
TW9kZWwqIG1vZGVsID0gbmV3IFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKCk7Ci0gICAgbW9kZWwt
PmQgPSBuZXcgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlKGxpc3QpOworICAgIG1vZGVs
LT5kID0gbmV3IFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZSgpOwogICAgIHJldHVybiBt
b2RlbDsKIH0KIAordm9pZCBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OnNldEJhY2tG
b3J3YXJkTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0KQoreworICAgIG1fYmFja0Zvcndh
cmRMaXN0ID0gbGlzdDsKK30KKworUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZTo6UVdlYk5h
dmlnYXRpb25IaXN0b3J5UHJpdmF0ZSgpCit7CisgICAgbV9iYWNrTmF2aWdhdGlvbk1vZGVsID0g
YWRvcHRQdHIoUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0
aW9uTW9kZWwoKSk7CisgICAgbV9mb3J3YXJkTmF2aWdhdGlvbk1vZGVsID0gYWRvcHRQdHIoUVdl
Yk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwoKSk7
Cit9CiAKLVFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OlFXZWJOYXZpZ2F0aW9uSGlzdG9y
eVByaXZhdGUoV0tQYWdlUmVmIHBhZ2UpCi0gICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fYmFj
a0ZvcndhcmRMaXN0KFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChwYWdlKSkKLSAgICAsIG1fYmFj
a05hdmlnYXRpb25Nb2RlbChhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6
OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbChtX2JhY2tGb3J3YXJkTGlzdC5nZXQoKSkpKQotICAg
ICwgbV9mb3J3YXJkTmF2aWdhdGlvbk1vZGVsKGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uTGlzdE1v
ZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKG1fYmFja0ZvcndhcmRMaXN0Lmdl
dCgpKSkpCit2b2lkIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OnNldFBhZ2UoV0tQYWdl
UmVmIHBhZ2UpCiB7CisgICAgbV9wYWdlID0gcGFnZTsKKyAgICBtX2JhY2tGb3J3YXJkTGlzdCA9
IFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChwYWdlKTsKKyAgICBtX2JhY2tOYXZpZ2F0aW9uTW9k
ZWwtPmQtPnNldEJhY2tGb3J3YXJkTGlzdChtX2JhY2tGb3J3YXJkTGlzdC5nZXQoKSk7CisgICAg
bV9mb3J3YXJkTmF2aWdhdGlvbk1vZGVsLT5kLT5zZXRCYWNrRm9yd2FyZExpc3QobV9iYWNrRm9y
d2FyZExpc3QuZ2V0KCkpOworCiAgICAgbV9iYWNrTmF2aWdhdGlvbk1vZGVsLT5kLT5jb3VudCA9
ICZXS0JhY2tGb3J3YXJkTGlzdEdldEJhY2tMaXN0Q291bnQ7CiAgICAgbV9iYWNrTmF2aWdhdGlv
bk1vZGVsLT5kLT5pbmRleFNpZ24gPSAtMTsKICAgICBtX2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwt
PmQtPmNvdW50ID0gJldLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZExpc3RDb3VudDsKICAgICBt
X2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwtPmQtPmluZGV4U2lnbiA9IDE7CiB9CiAKLVFXZWJOYXZp
Z2F0aW9uSGlzdG9yeSogUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZTo6Y3JlYXRlSGlzdG9y
eShXS1BhZ2VSZWYgcGFnZSkKK1FXZWJOYXZpZ2F0aW9uSGlzdG9yeSogUVdlYk5hdmlnYXRpb25I
aXN0b3J5UHJpdmF0ZTo6Y3JlYXRlSGlzdG9yeSgpCiB7CiAgICAgUVdlYk5hdmlnYXRpb25IaXN0
b3J5KiBoaXN0b3J5ID0gbmV3IFFXZWJOYXZpZ2F0aW9uSGlzdG9yeSgpOwotICAgIGhpc3Rvcnkt
PmQgPSBuZXcgUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZShwYWdlKTsKKyAgICBoaXN0b3J5
LT5kID0gbmV3IFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGUoKTsKICAgICByZXR1cm4gaGlz
dG9yeTsKIH0KIApAQCAtMTEyLDYgKzEyMiw4IEBAIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsOjp+
UVdlYk5hdmlnYXRpb25MaXN0TW9kZWwoKQogCiBpbnQgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWw6
OnJvd0NvdW50KGNvbnN0IFFNb2RlbEluZGV4JikgY29uc3QKIHsKKyAgICBpZighZC0+bV9iYWNr
Rm9yd2FyZExpc3QpCisgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBkLT5jb3VudChkLT5t
X2JhY2tGb3J3YXJkTGlzdC5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5X3BfcC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnlfcF9wLmgKaW5kZXgg
YzhjYzVhYi4uZjliYjBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnlfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnlfcF9wLmgKQEAgLTQzLDkgKzQzLDEw
IEBAIGNsYXNzIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsOwogCiBjbGFzcyBRV2ViTmF2aWdhdGlv
bkxpc3RNb2RlbFByaXZhdGUgewogcHVibGljOgotICAgIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVs
UHJpdmF0ZShXS0JhY2tGb3J3YXJkTGlzdFJlZik7CisgICAgUVdlYk5hdmlnYXRpb25MaXN0TW9k
ZWxQcml2YXRlKCk7CiAKLSAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIGNyZWF0
ZVdlYk5hdmlnYXRpb25Nb2RlbChXS0JhY2tGb3J3YXJkTGlzdFJlZik7CisgICAgc3RhdGljIFFX
ZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKiBjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwoKTsKKyAgICB2
b2lkIHNldEJhY2tGb3J3YXJkTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZik7CiAKICAgICB1bnNp
Z25lZCAoKmNvdW50KShXS0JhY2tGb3J3YXJkTGlzdFJlZik7CiAgICAgV0tSZXRhaW5QdHI8V0tC
YWNrRm9yd2FyZExpc3RSZWY+IG1fYmFja0ZvcndhcmRMaXN0OwpAQCAtNTQsOSArNTUsMTAgQEAg
cHVibGljOgogCiBjbGFzcyBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25IaXN0b3J5KiBjcmVhdGVIaXN0b3J5KFdLUGFnZVJl
Zik7CisgICAgc3RhdGljIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeSogY3JlYXRlSGlzdG9yeSgpOwor
ICAgIHZvaWQgc2V0UGFnZShXS1BhZ2VSZWYpOwogCi0gICAgUVdlYk5hdmlnYXRpb25IaXN0b3J5
UHJpdmF0ZShXS1BhZ2VSZWYpOworICAgIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGUoKTsK
ICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBnb0JhY2tUbyhpbnQgaW5kZXgpOwogICAgIHZv
aWQgZ29Gb3J3YXJkVG8oaW50IGluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAppbmRleCA3MWMxMWFmLi5jMzM2NzI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXMuY3BwCkBAIC0yOCwxMyArMjgsMzIgQEAKICNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3BfcC5o
IgogI2luY2x1ZGUgInF3ZWJwcmVmZXJlbmNlc19wX3AuaCIKIAotUVdlYlByZWZlcmVuY2VzKiBR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3UHJp
dmF0ZSogd2ViVmlld1ByaXZhdGUpCitRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlKCkKKyAgICA6IHdlYlZpZXdQcml2YXRlKDApCisgICAgLCBpbml0aWFsUXRP
YmplY3RFbmFibGVkKGZhbHNlKQoreworfQorCitRV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZlcmVuY2VzKCkKIHsKICAgICBRV2ViUHJlZmVyZW5jZXMq
IHByZWZzID0gbmV3IFFXZWJQcmVmZXJlbmNlczsKLSAgICBwcmVmcy0+ZC0+d2ViVmlld1ByaXZh
dGUgPSB3ZWJWaWV3UHJpdmF0ZTsKICAgICByZXR1cm4gcHJlZnM7CiB9CiAKK3ZvaWQgUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6c2V0V2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmlld1ByaXZhdGUq
IHdlYlZpZXcpCit7CisgICAgd2ViVmlld1ByaXZhdGUgPSB3ZWJWaWV3OworCisgICAgUU1hcDxR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUsIGJvb2w+Ojpjb25zdF9pdGVyYXRv
ciBpID0gaW5pdGlhbFByZWZlcmVuY2VzLmNvbnN0QmVnaW4oKTsKKyAgICB3aGlsZSAoaSAhPSBp
bml0aWFsUHJlZmVyZW5jZXMuY29uc3RFbmQoKSkgeworICAgICAgICBzZXRBdHRyaWJ1dGUoaS5r
ZXkoKSwgaS52YWx1ZSgpKTsKKyAgICAgICAgKytpOworICAgIH0KKworICAgIGlmIChpbml0aWFs
UXRPYmplY3RFbmFibGVkKQorICAgICAgICB3ZWJWaWV3UHJpdmF0ZS0+c2V0TmF2aWdhdG9yUXRP
YmplY3RFbmFibGVkKGluaXRpYWxRdE9iamVjdEVuYWJsZWQpOworfQorCiBib29sIFFXZWJQcmVm
ZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2Vi
QXR0cmlidXRlIGF0dHIpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChhdHRyKSB7CkBAIC02Miw2ICs4
MSwxMSBAQCBib29sIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnRlc3RBdHRyaWJ1dGUoUVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlCiAKIHZvaWQgUVdlYlByZWZlcmVuY2VzUHJp
dmF0ZTo6c2V0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSBh
dHRyLCBib29sIGVuYWJsZSkKIHsKKyAgICBpZiAoIXdlYlZpZXdQcml2YXRlKSB7CisgICAgICAg
IGluaXRpYWxQcmVmZXJlbmNlcy5pbnNlcnQoYXR0ciwgZW5hYmxlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIHN3aXRjaCAoYXR0cikgewogICAgIGNhc2UgQXV0b0xvYWRJbWFnZXM6
CiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkocHJlZmVy
ZW5jZXNSZWYoKSwgZW5hYmxlKTsKQEAgLTI4Miw2ICszMDYsOCBAQCB2b2lkIFFXZWJQcmVmZXJl
bmNlczo6c2V0RG5zUHJlZmV0Y2hFbmFibGVkKGJvb2wgZW5hYmxlKQogCiBib29sIFFXZWJQcmVm
ZXJlbmNlczo6bmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKCkgY29uc3QKIHsKKyAgICBpZiAoIWQt
PndlYlZpZXdQcml2YXRlKQorICAgICAgICByZXR1cm4gZC0+aW5pdGlhbFF0T2JqZWN0RW5hYmxl
ZDsKICAgICByZXR1cm4gZC0+d2ViVmlld1ByaXZhdGUtPm5hdmlnYXRvclF0T2JqZWN0RW5hYmxl
ZCgpOwogfQogCkBAIC0yODksNiArMzE1LDEyIEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXRO
YXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoYm9vbCBlbmFibGUpCiB7CiAgICAgaWYgKGVuYWJsZSA9
PSBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFkLT53ZWJWaWV3UHJpdmF0ZSkgeworICAgICAgICBkLT5pbml0aWFsUXRPYmplY3RFbmFibGVk
ID0gZW5hYmxlOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZC0+d2ViVmlld1ByaXZh
dGUtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChlbmFibGUpOwogICAgIGVtaXQgbmF2aWdh
dG9yUXRPYmplY3RFbmFibGVkQ2hhbmdlZCgpOwogfQpAQCAtMzk0LDYgKzQyNiw3IEBAIHZvaWQg
UVdlYlByZWZlcmVuY2VzOjpzZXREZWZhdWx0Rml4ZWRGb250U2l6ZSh1bnNpZ25lZCBzaXplKQog
CiBXS1ByZWZlcmVuY2VzUmVmIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnByZWZlcmVuY2VzUmVm
KCkgY29uc3QKIHsKKyAgICBBU1NFUlQod2ViVmlld1ByaXZhdGUpOwogICAgIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlZiA9IHRvQVBJKHdlYlZpZXdQcml2YXRlLT53ZWJQYWdlUHJveHktPnBh
Z2VHcm91cCgpKTsKICAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3Jv
dXBSZWYpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
d2VicHJlZmVyZW5jZXNfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcC5oCmluZGV4IDI5ZGYwNGMuLmY4MzI0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKQEAgLTEzNiw2
ICsxMzYsOCBAQCBwcml2YXRlOgogICAgIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGUgKmQ7CiAKICAg
ICBmcmllbmQgY2xhc3MgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTsKKyAgICBmcmllbmQgY2xhc3Mg
UVF1aWNrV2ViVmlld1ByaXZhdGU7CisgICAgZnJpZW5kIGNsYXNzIFFRdWlja1dlYlZpZXdFeHBl
cmltZW50YWw7CiB9OwogCiAjZW5kaWYgLy8gcXdlYnByZWZlcmVuY2VzX3BfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaApp
bmRleCBmNGVmMTNjLi5hZmIwMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wX3AuaApAQCAtNTQsNyArNTQsOCBAQCBwdWJs
aWM6CiAgICAgICAgIERlZmF1bHRGaXhlZEZvbnRTaXplCiAgICAgfTsKIAotICAgIHN0YXRpYyBR
V2ViUHJlZmVyZW5jZXMqIGNyZWF0ZVByZWZlcmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKik7
CisgICAgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZSgpOworICAgIHN0YXRpYyBRV2ViUHJlZmVyZW5j
ZXMqIGNyZWF0ZVByZWZlcmVuY2VzKCk7CiAKICAgICB2b2lkIHNldEF0dHJpYnV0ZShXZWJBdHRy
aWJ1dGUgYXR0ciwgYm9vbCBlbmFibGUpOwogICAgIGJvb2wgdGVzdEF0dHJpYnV0ZShXZWJBdHRy
aWJ1dGUgYXR0cikgY29uc3Q7CkBAIC03MCw2ICs3MSwxMSBAQCBwdWJsaWM6CiAgICAgUVF1aWNr
V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdQcml2YXRlOwogCiAgICAgc3RhdGljIFFXZWJQcmVmZXJl
bmNlc1ByaXZhdGUqIGdldChRV2ViUHJlZmVyZW5jZXMqKTsKKworICAgIHZvaWQgc2V0V2ViVmll
d1ByaXZhdGUoUVF1aWNrV2ViVmlld1ByaXZhdGUqKTsKKworICAgIFFNYXA8V2ViQXR0cmlidXRl
LCBib29sPiBpbml0aWFsUHJlZmVyZW5jZXM7CisgICAgYm9vbCBpbml0aWFsUXRPYmplY3RFbmFi
bGVkOwogfTsKIAogI2VuZGlmIC8vIHF3ZWJwcmVmZXJlbmNlc19wX3BfaAotLSAKMS43LjguMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121657</attachid>
            <date>2012-01-09 06:12:33 -0800</date>
            <delta_ts>2012-01-12 11:02:34 -0800</delta_ts>
            <desc>WIP Patch v2</desc>
            <filename>0001-Moving-WebView-initialization-to-componentComplete.patch</filename>
            <type>text/plain</type>
            <size>18086</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSAzMWU1OTVlMzRmYjNiYzJiYTllZjFkNzM2NzYzMmI0NTBmYzYyZGFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDI3IERlYyAyMDExIDE0OjE1OjEzIC0wMzAwClN1
YmplY3Q6IFtQQVRDSCAxLzJdIE1vdmluZyBXZWJWaWV3IGluaXRpYWxpemF0aW9uIHRvIGNvbXBv
bmVudENvbXBsZXRlCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgIHwgICA2OCArKysrKysrKysrKysrKysrKy0tCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKwog
Li4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oICAgfCAgICAx
ICsKIC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgICAgIHwg
ICAzNiArKysrKysrLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0
b3J5X3BfcC5oICAgfCAgIDEwICsrLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXMuY3BwICAgfCAgIDM3ICsrKysrKysrKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmggICB8ICAgIDIgKwogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmggfCAgICA4ICsrLQogOCBmaWxlcyBj
aGFuZ2VkLCAxMzcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggMjY0Y2Ji
MC4uYWE4NGZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXcuY3BwCkBAIC01OSwxMSArNTksMTUgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6
OlFRdWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgcG9z
dFRyYW5zaXRpb25TdGF0ZShhZG9wdFB0cihuZXcgUG9zdFRyYW5zaXRpb25TdGF0ZSh0aGlzKSkp
CiAgICAgLCBpc1RyYW5zaXRpb25pbmdUb05ld1BhZ2UoZmFsc2UpCiAgICAgLCBwYWdlSXNTdXNw
ZW5kZWQoZmFsc2UpCisgICAgLCB1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoZmFsc2Up
CiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKKyAgICAsIGlzSW5pdGlh
bGl6ZWQoZmFsc2UpCiB7CiAgICAgdmlld3BvcnQtPnNldEZsYWdzKFFRdWlja0l0ZW06Okl0ZW1D
bGlwc0NoaWxkcmVuVG9TaGFwZSk7CiAgICAgUU9iamVjdDo6Y29ubmVjdCh2aWV3cG9ydCwgU0lH
TkFMKHZpc2libGVDaGFuZ2VkKCkpLCB2aWV3cG9ydCwgU0xPVChfcV9vblZpc2libGVDaGFuZ2Vk
KCkpKTsKICAgICBwYWdlVmlldy5yZXNldChuZXcgUVF1aWNrV2ViUGFnZSh2aWV3cG9ydCkpOwor
CisgICAgbmF2aWdhdGlvbkhpc3RvcnkgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkhpc3RvcnlQ
cml2YXRlOjpjcmVhdGVIaXN0b3J5KCkpOwogfQogCiBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6flFR
dWlja1dlYlZpZXdQcml2YXRlKCkKQEAgLTkxLDE0ICs5NSwxMyBAQCB2b2lkIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91
cFJlZiBwYQogICAgIHBhZ2VMb2FkQ2xpZW50LnJlc2V0KG5ldyBRdFdlYlBhZ2VMb2FkQ2xpZW50
KHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSksIHFfcHRyKSk7CiAgICAgcGFnZVBvbGljeUNsaWVu
dC5yZXNldChuZXcgUXRXZWJQYWdlUG9saWN5Q2xpZW50KHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQo
KSksIHFfcHRyKSk7CiAgICAgcGFnZVVJQ2xpZW50LnJlc2V0KG5ldyBRdFdlYlBhZ2VVSUNsaWVu
dCh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpLCBxX3B0cikpOwotICAgIG5hdmlnYXRpb25IaXN0
b3J5ID0gYWRvcHRQdHIoUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZTo6Y3JlYXRlSGlzdG9y
eSh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpKSk7CisgICAgbmF2aWdhdGlvbkhpc3RvcnktPmQt
PnNldFBhZ2UodG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSk7CiAKICAgICBRdFdlYkljb25EYXRh
YmFzZUNsaWVudCogaWNvbkRhdGFiYXNlID0gY29udGV4dC0+aWNvbkRhdGFiYXNlKCk7CiAgICAg
UU9iamVjdDo6Y29ubmVjdChpY29uRGF0YWJhc2UsIFNJR05BTChpY29uQ2hhbmdlZEZvclBhZ2VV
UkwoUVVybCwgUVVybCkpLCBxX3B0ciwgU0xPVChfcV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChR
VXJsLCBRVXJsKSkpOwogICAgIFFPYmplY3Q6OmNvbm5lY3QocV9wdHIsIFNJR05BTCh1cmxDaGFu
Z2VkKFFVcmwpKSwgaWNvbkRhdGFiYXNlLCBTTE9UKHJlcXVlc3RJY29uRm9yUGFnZVVSTChRVXJs
KSkpOwogCiAgICAgLy8gQW55IHBhZ2Ugc2V0dGluZyBzaG91bGQgcHJlZmVycmFibGUgYmUgc2V0
IGJlZm9yZSBjcmVhdGluZyB0aGUgcGFnZS4KLSAgICBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BC
ZWhhdmlvdXIoZmFsc2UpOwogICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwogCiAgICAgcGFn
ZUNsaWVudC5pbml0aWFsaXplKHFfcHRyLCBwYWdlVmlld1ByaXZhdGUtPmV2ZW50SGFuZGxlci5k
YXRhKCksICZ1bmRvQ29udHJvbGxlcik7CkBAIC0xMDYsNiArMTA5LDExIEBAIHZvaWQgUVF1aWNr
V2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFn
ZUdyb3VwUmVmIHBhCiAKICAgICAvLyBUcmlnZ2VyIHNldHRpbmcgb2YgY29ycmVjdCB2aXNpYmls
aXR5IGZsYWdzIGFmdGVyIGV2ZXJ5dGhpbmcgd2FzIGFsbG9jYXRlZCBhbmQgaW5pdGlhbGl6ZWQu
CiAgICAgX3Ffb25WaXNpYmxlQ2hhbmdlZCgpOworCisgICAgaWYgKHByZWZlcmVuY2VzKQorICAg
ICAgICBwcmVmZXJlbmNlcy0+ZC0+c2V0V2ViVmlld1ByaXZhdGUodGhpcyk7CisKKyAgICBpc0lu
aXRpYWxpemVkID0gdHJ1ZTsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZW5hYmxl
TW91c2VFdmVudHMoKQpAQCAtMTM2LDYgKzE0NCwxMCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjppbml0aWFsaXplRGVza3RvcChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICBpbnRl
cmFjdGlvbkVuZ2luZS5yZXNldCgwKTsKICAgICBwYWdlVmlldy0+ZC0+ZXZlbnRIYW5kbGVyLT5z
ZXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKDApOwogICAgIGVuYWJsZU1vdXNlRXZlbnRzKCk7
CisKKyAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSBvdXIgZ2VvbWV0cnkuCisgICAgcGFnZVZpZXct
PnNldFdpZHRoKHZpZXdwb3J0LT53aWR0aCgpKTsKKyAgICBwYWdlVmlldy0+c2V0SGVpZ2h0KHZp
ZXdwb3J0LT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRp
YWxpemVUb3VjaChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKQEAgLTUwMSw5ICs1MTMsMTMgQEAg
dm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZp
b3VyKGJvb2wgZW5hYmxlKQogCiAgICAgLy8gRG8gbm90IGd1YXJkLCB0ZXN0aW5nIGZvciB0aGUg
c2FtZSB2YWx1ZSwgYXMgd2UgY2FsbCB0aGlzIGZyb20gdGhlIGNvbnN0cnVjdG9yLgogCisgICAg
dXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyID0gZW5hYmxlOworCisgICAgaWYgKCFpc0lu
aXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKICAgICB3ZWJQYWdlUHJveHktPnNldFVzZUZp
eGVkTGF5b3V0KCFlbmFibGUpOwogCi0gICAgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3Vy
ID0gZW5hYmxlOwogICAgIGlmICh1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIpCiAgICAg
ICAgIGluaXRpYWxpemVEZXNrdG9wKHEpOwogICAgIGVsc2UKQEAgLTU0OSw2ICs1NjUsNyBAQCB2
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoYm9v
bCBlbmFibGVkKQogICAgIEFTU0VSVChlbmFibGVkICE9IG1fbmF2aWdhdG9yUXRPYmplY3RFbmFi
bGVkKTsKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGhhdmUgdG8ga2VlcCB0aGlzIGluZm9y
bWF0aW9uIGluIGJvdGggcHJvY2Vzc2VzIGFuZCB0aGUgc2V0dGluZyBpcyBhc3luY2hyb25vdXMu
CiAgICAgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgPSBlbmFibGVkOworCiAgICAgY29udGV4
dC0+c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKHdlYlBhZ2VQcm94eS5nZXQoKSwgZW5hYmxl
ZCk7CiB9CiAKQEAgLTY2Niw3ICs2ODMsMTEgQEAgUVdlYlByZWZlcmVuY2VzKiBRUXVpY2tXZWJW
aWV3RXhwZXJpbWVudGFsOjpwcmVmZXJlbmNlcygpIGNvbnN0CiB7CiAgICAgUVF1aWNrV2ViVmll
d1ByaXZhdGUqIGNvbnN0IGQgPSBkX3B0cjsKICAgICBpZiAoIWQtPnByZWZlcmVuY2VzKQotICAg
ICAgICBkLT5wcmVmZXJlbmNlcyA9IGFkb3B0UHRyKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNy
ZWF0ZVByZWZlcmVuY2VzKGQpKTsKKyAgICAgICAgZC0+cHJlZmVyZW5jZXMgPSBhZG9wdFB0cihR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcygpKTsKKworICAgIGlmIChk
LT5pc0luaXRpYWxpemVkKQorICAgICAgICBkLT5wcmVmZXJlbmNlcy0+ZC0+c2V0V2ViVmlld1By
aXZhdGUoZCk7CisKICAgICByZXR1cm4gZC0+cHJlZmVyZW5jZXMuZ2V0KCk7CiB9CiAKQEAgLTcx
Niw3ICs3MzcsMTAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzY2hlbWVEZWxl
Z2F0ZXNfQXBwZW5kKFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTwKICAgICBpZiAoIXdlYlZpZXdF
eHBlcmltZW50YWwpCiAgICAgICAgIHJldHVybjsKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSog
ZCA9IHdlYlZpZXdFeHBlcmltZW50YWwtPmRfZnVuYygpOwotICAgIGQtPndlYlBhZ2VQcm94eS0+
cmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShzY2hlbWUtPnNjaGVtZSgpKTsKKworICAgIC8vIEZJ
WE1FOiB0aGlzIHdpbGwgYXZvaWQgYSBzZWdmYXVsdCBidXQgd2lsbCBtYWtlIGN1c3RvbSBzY2hl
bWUgcW1sIHRlc3QgZmFpbAorICAgIGlmIChkLT53ZWJQYWdlUHJveHkpCisgICAgICAgIGQtPndl
YlBhZ2VQcm94eS0+cmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShzY2hlbWUtPnNjaGVtZSgpKTsK
IH0KIAogaW50IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNjaGVtZURlbGVnYXRlc19Db3Vu
dChRRGVjbGFyYXRpdmVMaXN0UHJvcGVydHk8UVF1aWNrVXJsU2NoZW1lRGVsZWdhdGU+KiBwcm9w
ZXJ0eSkKQEAgLTc4OCw5ICs4MTIsNiBAQCBRUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJWaWV3KFFR
dWlja0l0ZW0qIHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSh0
aGlzKSkKICAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
KHRoaXMpKQogewotICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT5pbml0aWFsaXplKCk7
Ci0gICAgZC0+aW5pdGlhbGl6ZVRvdWNoKHRoaXMpOwogfQogCiBRUXVpY2tXZWJWaWV3OjpRUXVp
Y2tXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
dXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkKQEAgLTg0OSw2ICs4NzAsOCBAQCB2b2lkIFFRdWlj
a1dlYlZpZXc6OnJlbG9hZCgpCiBRVXJsIFFRdWlja1dlYlZpZXc6OnVybCgpIGNvbnN0CiB7CiAg
ICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkK
KyAgICAgICAgcmV0dXJuIFFVcmwoKTsKICAgICBSZWZQdHI8V2ViRnJhbWVQcm94eT4gbWFpbkZy
YW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKTsKICAgICBpZiAoIW1haW5GcmFtZSkK
ICAgICAgICAgcmV0dXJuIFFVcmwoKTsKQEAgLTg1OCwzMCArODgxLDQwIEBAIFFVcmwgUVF1aWNr
V2ViVmlldzo6dXJsKCkgY29uc3QKIFFVcmwgUVF1aWNrV2ViVmlldzo6aWNvbigpIGNvbnN0CiB7
CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXpl
ZCkKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKICAgICByZXR1cm4gZC0+bV9pY29uVVJMOwogfQog
CiBpbnQgUVF1aWNrV2ViVmlldzo6bG9hZFByb2dyZXNzKCkgY29uc3QKIHsKICAgICBRX0QoY29u
c3QgUVF1aWNrV2ViVmlldyk7CisgICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICBy
ZXR1cm4gMDsKICAgICByZXR1cm4gZC0+cGFnZUxvYWRDbGllbnQtPmxvYWRQcm9ncmVzcygpOwog
fQogCiBib29sIFFRdWlja1dlYlZpZXc6OmNhbkdvQmFjaygpIGNvbnN0CiB7CiAgICAgUV9EKGNv
bnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPmNhbkdvQmFjaygpOwog
fQogCiBib29sIFFRdWlja1dlYlZpZXc6OmNhbkdvRm9yd2FyZCgpIGNvbnN0CiB7CiAgICAgUV9E
KGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPmNhbkdvRm9yd2Fy
ZCgpOwogfQogCiBib29sIFFRdWlja1dlYlZpZXc6OmxvYWRpbmcoKSBjb25zdAogewogICAgIFFf
RChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJGcmFtZVByb3h5PiBtYWlu
RnJhbWUgPSBkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpOwogICAgIHJldHVybiBtYWluRnJh
bWUgJiYgIShXZWJGcmFtZVByb3h5OjpMb2FkU3RhdGVGaW5pc2hlZCA9PSBtYWluRnJhbWUtPmxv
YWRTdGF0ZSgpKTsKIH0KQEAgLTg4OSw2ICs5MjIsOCBAQCBib29sIFFRdWlja1dlYlZpZXc6Omxv
YWRpbmcoKSBjb25zdAogYm9vbCBRUXVpY2tXZWJWaWV3OjpjYW5SZWxvYWQoKSBjb25zdAogewog
ICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJGcmFtZVByb3h5
PiBtYWluRnJhbWUgPSBkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpOwogICAgIGlmIChtYWlu
RnJhbWUpCiAgICAgICAgIHJldHVybiAoV2ViRnJhbWVQcm94eTo6TG9hZFN0YXRlRmluaXNoZWQg
PT0gbWFpbkZyYW1lLT5sb2FkU3RhdGUoKSk7CkBAIC04OTgsNiArOTMzLDggQEAgYm9vbCBRUXVp
Y2tXZWJWaWV3OjpjYW5SZWxvYWQoKSBjb25zdAogUVN0cmluZyBRUXVpY2tXZWJWaWV3Ojp0aXRs
ZSgpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+
aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKICAgICByZXR1cm4gZC0+
d2ViUGFnZVByb3h5LT5wYWdlVGl0bGUoKTsKIH0KIApAQCAtOTQ2LDcgKzk4MywxMiBAQCB2b2lk
IFFRdWlja1dlYlZpZXc6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB2b2lkIFFRdWlja1dlYlZpZXc6
Omdlb21ldHJ5Q2hhbmdlZChjb25zdCBRUmVjdEYmIG5ld0dlb21ldHJ5LCBjb25zdCBRUmVjdEYm
IG9sZEdlb21ldHJ5KQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKworICAgIGlmICghZC0+
aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUVF1aWNrSXRlbTo6Z2VvbWV0
cnlDaGFuZ2VkKG5ld0dlb21ldHJ5LCBvbGRHZW9tZXRyeSk7CisKICAgICBpZiAobmV3R2VvbWV0
cnkuc2l6ZSgpICE9IG9sZEdlb21ldHJ5LnNpemUoKSkgewogICAgICAgICBpZiAoZC0+dXNlVHJh
ZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKSB7CiAgICAgICAgICAgICBkLT5wYWdlVmlldy0+c2V0
V2lkdGgobmV3R2VvbWV0cnkud2lkdGgoKSk7CkBAIC05ODgsNCArMTAzMCwxNCBAQCB2b2lkIFFR
dWlja1dlYlZpZXc6OmxvYWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFVcmwmIGJh
c2VVcmwpCiAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkSFRNTFN0cmluZyhodG1sLCBiYXNlVXJs
LnRvU3RyaW5nKCkpOwogfQogCit2b2lkIFFRdWlja1dlYlZpZXc6OmNvbXBvbmVudENvbXBsZXRl
KCkKK3sKKyAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisgICAgZC0+aW5pdGlhbGl6ZSgpOworCisg
ICAgLy8gSW5pdGlhbGl6ZSB2aWV3IGNvcnJlY3RseSBhcyBkZXNrdG9wIG9yIHRvdWNoLCBhY2Nv
cmRpbmcgdG8KKyAgICAvLyB0aGUgZXhwZXJpbWVudGFsIHByb3BlcnR5IHVzZVRyYWRpdGlvbmFs
RGVza3RvcEJlaGF2aW91ci4KKyAgICBkLT5zZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlv
dXIoZC0+dXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKTsKK30KKwogI2luY2x1ZGUgIm1v
Y19xcXVpY2t3ZWJ2aWV3X3AuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggZTVkM2YxZS4uOGFkOTA1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0x
MDcsNiArMTA3LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7IC8vIE9ubHkgbmVlZGVkIGJ5IFdUUi4KIAorICAgIHZpcnR1YWwgdm9pZCBjb21wb25l
bnRDb21wbGV0ZSgpOworCiBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIGxvYWQoY29uc3QgUVVy
bCYpOwogICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmluZyYgaHRtbCwgY29uc3QgUVVybCYg
YmFzZVVybCA9IFFVcmwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggM2I5OTkyOC4uYzVmMzViMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApA
QCAtMTYzLDYgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1c2VUcmFkaXRpb25hbERlc2t0
b3BCZWhhdmlvdXI7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsKICAgICBR
VXJsIG1faWNvblVSTDsKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQ7CiB9OwogCiAjZW5kaWYgLy8g
cXF1aWNrd2Vidmlld19wX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3BwCmluZGV4IGZmNzdkYWUuLjRlNTQx
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmln
YXRpb25oaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAKQEAgLTQzLDM2ICs0Myw0NiBAQAogCiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCi1RV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OlFXZWJOYXZp
Z2F0aW9uTGlzdE1vZGVsUHJpdmF0ZShXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0KQotICAgIDog
bV9iYWNrRm9yd2FyZExpc3QobGlzdCkKLSAgICAsIGluZGV4U2lnbigwKQorUVdlYk5hdmlnYXRp
b25MaXN0TW9kZWxQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUoKQorICAg
IDogaW5kZXhTaWduKDApCiB7CiB9CiAKLVFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKiBRV2ViTmF2
aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbChXS0JhY2tG
b3J3YXJkTGlzdFJlZiBsaXN0KQorUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIFFXZWJOYXZpZ2F0
aW9uTGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKCkKIHsKICAgICBR
V2ViTmF2aWdhdGlvbkxpc3RNb2RlbCogbW9kZWwgPSBuZXcgUVdlYk5hdmlnYXRpb25MaXN0TW9k
ZWwoKTsKLSAgICBtb2RlbC0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUo
bGlzdCk7CisgICAgbW9kZWwtPmQgPSBuZXcgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRl
KCk7CiAgICAgcmV0dXJuIG1vZGVsOwogfQogCit2b2lkIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVs
UHJpdmF0ZTo6c2V0QmFja0ZvcndhcmRMaXN0KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3QpCit7
CisgICAgbV9iYWNrRm9yd2FyZExpc3QgPSBsaXN0OworfQorCitRV2ViTmF2aWdhdGlvbkhpc3Rv
cnlQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKCkKK3sKKyAgICBtX2JhY2tO
YXZpZ2F0aW9uTW9kZWwgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6
OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbCgpKTsKKyAgICBtX2ZvcndhcmROYXZpZ2F0aW9uTW9k
ZWwgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OmNyZWF0ZVdlYk5h
dmlnYXRpb25Nb2RlbCgpKTsKK30KIAotUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZTo6UVdl
Yk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZShXS1BhZ2VSZWYgcGFnZSkKLSAgICA6IG1fcGFnZShw
YWdlKQotICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHBh
Z2UpKQotICAgICwgbV9iYWNrTmF2aWdhdGlvbk1vZGVsKGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9u
TGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKG1fYmFja0ZvcndhcmRM
aXN0LmdldCgpKSkpCi0gICAgLCBtX2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwoYWRvcHRQdHIoUVdl
Yk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwobV9i
YWNrRm9yd2FyZExpc3QuZ2V0KCkpKSkKK3ZvaWQgUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0
ZTo6c2V0UGFnZShXS1BhZ2VSZWYgcGFnZSkKIHsKKyAgICBtX3BhZ2UgPSBwYWdlOworICAgIG1f
YmFja0ZvcndhcmRMaXN0ID0gV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHBhZ2UpOworICAgIG1f
YmFja05hdmlnYXRpb25Nb2RlbC0+ZC0+c2V0QmFja0ZvcndhcmRMaXN0KG1fYmFja0ZvcndhcmRM
aXN0LmdldCgpKTsKKyAgICBtX2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwtPmQtPnNldEJhY2tGb3J3
YXJkTGlzdChtX2JhY2tGb3J3YXJkTGlzdC5nZXQoKSk7CisKICAgICBtX2JhY2tOYXZpZ2F0aW9u
TW9kZWwtPmQtPmNvdW50ID0gJldLQmFja0ZvcndhcmRMaXN0R2V0QmFja0xpc3RDb3VudDsKICAg
ICBtX2JhY2tOYXZpZ2F0aW9uTW9kZWwtPmQtPmluZGV4U2lnbiA9IC0xOwogICAgIG1fZm9yd2Fy
ZE5hdmlnYXRpb25Nb2RlbC0+ZC0+Y291bnQgPSAmV0tCYWNrRm9yd2FyZExpc3RHZXRGb3J3YXJk
TGlzdENvdW50OwogICAgIG1fZm9yd2FyZE5hdmlnYXRpb25Nb2RlbC0+ZC0+aW5kZXhTaWduID0g
MTsKIH0KIAotUVdlYk5hdmlnYXRpb25IaXN0b3J5KiBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2
YXRlOjpjcmVhdGVIaXN0b3J5KFdLUGFnZVJlZiBwYWdlKQorUVdlYk5hdmlnYXRpb25IaXN0b3J5
KiBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlOjpjcmVhdGVIaXN0b3J5KCkKIHsKICAgICBR
V2ViTmF2aWdhdGlvbkhpc3RvcnkqIGhpc3RvcnkgPSBuZXcgUVdlYk5hdmlnYXRpb25IaXN0b3J5
KCk7Ci0gICAgaGlzdG9yeS0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKHBh
Z2UpOworICAgIGhpc3RvcnktPmQgPSBuZXcgUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZSgp
OwogICAgIHJldHVybiBoaXN0b3J5OwogfQogCkBAIC0xMTIsNiArMTIyLDggQEAgUVdlYk5hdmln
YXRpb25MaXN0TW9kZWw6On5RV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCgpCiAKIGludCBRV2ViTmF2
aWdhdGlvbkxpc3RNb2RlbDo6cm93Q291bnQoY29uc3QgUU1vZGVsSW5kZXgmKSBjb25zdAogewor
ICAgIGlmKCFkLT5tX2JhY2tGb3J3YXJkTGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0
dXJuIGQtPmNvdW50KGQtPm1fYmFja0ZvcndhcmRMaXN0LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3Rvcnlf
cF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlz
dG9yeV9wX3AuaAppbmRleCBjOGNjNWFiLi5mOWJiMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3AuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3Au
aApAQCAtNDMsOSArNDMsMTAgQEAgY2xhc3MgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWw7CiAKIGNs
YXNzIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZSB7CiBwdWJsaWM6Ci0gICAgUVdlYk5h
dmlnYXRpb25MaXN0TW9kZWxQcml2YXRlKFdLQmFja0ZvcndhcmRMaXN0UmVmKTsKKyAgICBRV2Vi
TmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUoKTsKIAotICAgIHN0YXRpYyBRV2ViTmF2aWdhdGlv
bkxpc3RNb2RlbCogY3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKFdLQmFja0ZvcndhcmRMaXN0UmVm
KTsKKyAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIGNyZWF0ZVdlYk5hdmlnYXRp
b25Nb2RlbCgpOworICAgIHZvaWQgc2V0QmFja0ZvcndhcmRMaXN0KFdLQmFja0ZvcndhcmRMaXN0
UmVmKTsKIAogICAgIHVuc2lnbmVkICgqY291bnQpKFdLQmFja0ZvcndhcmRMaXN0UmVmKTsKICAg
ICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gbV9iYWNrRm9yd2FyZExpc3Q7CkBA
IC01NCw5ICs1NSwxMCBAQCBwdWJsaWM6CiAKIGNsYXNzIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVBy
aXZhdGUgewogcHVibGljOgotICAgIHN0YXRpYyBRV2ViTmF2aWdhdGlvbkhpc3RvcnkqIGNyZWF0
ZUhpc3RvcnkoV0tQYWdlUmVmKTsKKyAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25IaXN0b3J5KiBj
cmVhdGVIaXN0b3J5KCk7CisgICAgdm9pZCBzZXRQYWdlKFdLUGFnZVJlZik7CiAKLSAgICBRV2Vi
TmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKFdLUGFnZVJlZik7CisgICAgUVdlYk5hdmlnYXRpb25I
aXN0b3J5UHJpdmF0ZSgpOwogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIGdvQmFja1RvKGlu
dCBpbmRleCk7CiAgICAgdm9pZCBnb0ZvcndhcmRUbyhpbnQgaW5kZXgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCmluZGV4IDcx
YzExYWYuLmMzMzY3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTI4LDEzICsyOCwzMiBAQAogI2luY2x1ZGUgInFx
dWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5oIgogCi1R
V2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZlcmVuY2Vz
KFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZSkKK1FXZWJQcmVmZXJlbmNlc1By
aXZhdGU6OlFXZWJQcmVmZXJlbmNlc1ByaXZhdGUoKQorICAgIDogd2ViVmlld1ByaXZhdGUoMCkK
KyAgICAsIGluaXRpYWxRdE9iamVjdEVuYWJsZWQoZmFsc2UpCit7Cit9CisKK1FXZWJQcmVmZXJl
bmNlcyogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoKQogewogICAg
IFFXZWJQcmVmZXJlbmNlcyogcHJlZnMgPSBuZXcgUVdlYlByZWZlcmVuY2VzOwotICAgIHByZWZz
LT5kLT53ZWJWaWV3UHJpdmF0ZSA9IHdlYlZpZXdQcml2YXRlOwogICAgIHJldHVybiBwcmVmczsK
IH0KIAordm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRXZWJWaWV3UHJpdmF0ZShRUXVp
Y2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlldykKK3sKKyAgICB3ZWJWaWV3UHJpdmF0ZSA9IHdlYlZp
ZXc7CisKKyAgICBRTWFwPFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZSwgYm9v
bD46OmNvbnN0X2l0ZXJhdG9yIGkgPSBpbml0aWFsUHJlZmVyZW5jZXMuY29uc3RCZWdpbigpOwor
ICAgIHdoaWxlIChpICE9IGluaXRpYWxQcmVmZXJlbmNlcy5jb25zdEVuZCgpKSB7CisgICAgICAg
IHNldEF0dHJpYnV0ZShpLmtleSgpLCBpLnZhbHVlKCkpOworICAgICAgICArK2k7CisgICAgfQor
CisgICAgaWYgKGluaXRpYWxRdE9iamVjdEVuYWJsZWQpCisgICAgICAgIHdlYlZpZXdQcml2YXRl
LT5zZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoaW5pdGlhbFF0T2JqZWN0RW5hYmxlZCk7Cit9
CisKIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVy
ZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYXR0cikgY29uc3QKIHsKICAgICBzd2l0Y2ggKGF0
dHIpIHsKQEAgLTYyLDYgKzgxLDExIEBAIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVz
dEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUKIAogdm9pZCBR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6V2ViQXR0cmlidXRlIGF0dHIsIGJvb2wgZW5hYmxlKQogeworICAgIGlmICghd2ViVmlld1By
aXZhdGUpIHsKKyAgICAgICAgaW5pdGlhbFByZWZlcmVuY2VzLmluc2VydChhdHRyLCBlbmFibGUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc3dpdGNoIChhdHRyKSB7CiAgICAgY2Fz
ZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1hZ2VzQXV0
b21hdGljYWxseShwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwpAQCAtMjgyLDYgKzMwNiw4IEBA
IHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXREbnNQcmVmZXRjaEVuYWJsZWQoYm9vbCBlbmFibGUp
CiAKIGJvb2wgUVdlYlByZWZlcmVuY2VzOjpuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoKSBjb25z
dAogeworICAgIGlmICghZC0+d2ViVmlld1ByaXZhdGUpCisgICAgICAgIHJldHVybiBkLT5pbml0
aWFsUXRPYmplY3RFbmFibGVkOwogICAgIHJldHVybiBkLT53ZWJWaWV3UHJpdmF0ZS0+bmF2aWdh
dG9yUXRPYmplY3RFbmFibGVkKCk7CiB9CiAKQEAgLTI4OSw2ICszMTUsMTIgQEAgdm9pZCBRV2Vi
UHJlZmVyZW5jZXM6OnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChib29sIGVuYWJsZSkKIHsK
ICAgICBpZiAoZW5hYmxlID09IG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIWQtPndlYlZpZXdQcml2YXRlKSB7CisgICAgICAgIGQtPmluaXRp
YWxRdE9iamVjdEVuYWJsZWQgPSBlbmFibGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBkLT53ZWJWaWV3UHJpdmF0ZS0+c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGVuYWJsZSk7
CiAgICAgZW1pdCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWRDaGFuZ2VkKCk7CiB9CkBAIC0zOTQs
NiArNDI2LDcgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldERlZmF1bHRGaXhlZEZvbnRTaXpl
KHVuc2lnbmVkIHNpemUpCiAKIFdLUHJlZmVyZW5jZXNSZWYgUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6cHJlZmVyZW5jZXNSZWYoKSBjb25zdAogeworICAgIEFTU0VSVCh3ZWJWaWV3UHJpdmF0ZSk7
CiAgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gdG9BUEkod2ViVmlld1ByaXZhdGUt
PndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCkpOwogICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzKHBhZ2VHcm91cFJlZik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKaW5kZXggMjlkZjA0Yy4uZjgzMjQ2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5j
ZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVu
Y2VzX3AuaApAQCAtMTM2LDYgKzEzNiw4IEBAIHByaXZhdGU6CiAgICAgUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZSAqZDsKIAogICAgIGZyaWVuZCBjbGFzcyBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOwor
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKKyAgICBmcmllbmQgY2xhc3Mg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIH07CiAKICNlbmRpZiAvLyBxd2VicHJlZmVyZW5j
ZXNfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJw
cmVmZXJlbmNlc19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3BfcC5oCmluZGV4IGY0ZWYxM2MuLmFmYjAwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCkBAIC01
NCw3ICs1NCw4IEBAIHB1YmxpYzoKICAgICAgICAgRGVmYXVsdEZpeGVkRm9udFNpemUKICAgICB9
OwogCi0gICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlcyogY3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNr
V2ViVmlld1ByaXZhdGUqKTsKKyAgICBRV2ViUHJlZmVyZW5jZXNQcml2YXRlKCk7CisgICAgc3Rh
dGljIFFXZWJQcmVmZXJlbmNlcyogY3JlYXRlUHJlZmVyZW5jZXMoKTsKIAogICAgIHZvaWQgc2V0
QXR0cmlidXRlKFdlYkF0dHJpYnV0ZSBhdHRyLCBib29sIGVuYWJsZSk7CiAgICAgYm9vbCB0ZXN0
QXR0cmlidXRlKFdlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdDsKQEAgLTcwLDYgKzcxLDExIEBAIHB1
YmxpYzoKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAKICAgICBz
dGF0aWMgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZSogZ2V0KFFXZWJQcmVmZXJlbmNlcyopOworCisg
ICAgdm9pZCBzZXRXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3UHJpdmF0ZSopOworCisgICAg
UU1hcDxXZWJBdHRyaWJ1dGUsIGJvb2w+IGluaXRpYWxQcmVmZXJlbmNlczsKKyAgICBib29sIGlu
aXRpYWxRdE9iamVjdEVuYWJsZWQ7CiB9OwogCiAjZW5kaWYgLy8gcXdlYnByZWZlcmVuY2VzX3Bf
cF9oCi0tIAoxLjcuOC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122272</attachid>
            <date>2012-01-12 11:02:34 -0800</date>
            <delta_ts>2012-01-12 11:57:15 -0800</delta_ts>
            <desc>wip Patch</desc>
            <filename>0001-Moving-WebView-initialization-to-componentComplete.patch</filename>
            <type>text/plain</type>
            <size>21655</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBjODAzOWZkZWZjODc0NmZkZjlhMTViYjI0ZDE5MjA0ZmRjNTI2YjE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDI3IERlYyAyMDExIDE0OjE1OjEzIC0wMzAwClN1
YmplY3Q6IFtQQVRDSCAxLzJdIE1vdmluZyBXZWJWaWV3IGluaXRpYWxpemF0aW9uIHRvIGNvbXBv
bmVudENvbXBsZXRlCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKZml4aW5nIG9uIHRvcCBvZiBwaW5jaCB6b29tCgpT
aWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAgIHwgICA3NiArKysrKysrKysrKysrKysrKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKwogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oICAgfCAgICAxICsKIC4uLi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgICAgIHwgICAzNiArKysrKystLS0K
IC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3AuaCAgIHwgICAx
MCArKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCAg
IHwgICAzNyArKysrKysrKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlc19wLmggICB8ICAgIDIgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcF9wLmggfCAgICA4ICsrLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2Vidmlld3BvcnRpbmZvLmNwcCAgfCAgIDIzICsrKysrKwogLi4uL1dlYlByb2Nlc3MvcXQv
UXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAgICAgICAgfCAgICA0ICstCiAxMCBmaWxlcyBjaGFu
Z2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNDNkNDBiOS4u
M2YxNDkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCkBAIC02MCwxMCArNjAsMTMgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFR
dWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgaXNUcmFu
c2l0aW9uaW5nVG9OZXdQYWdlKGZhbHNlKQogICAgICwgcGFnZUlzU3VzcGVuZGVkKGZhbHNlKQog
ICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCisgICAgLCBpc0luaXRpYWxp
emVkKGZhbHNlKQogewogICAgIHZpZXdwb3J0LT5zZXRGbGFncyhRUXVpY2tJdGVtOjpJdGVtQ2xp
cHNDaGlsZHJlblRvU2hhcGUpOwogICAgIFFPYmplY3Q6OmNvbm5lY3Qodmlld3BvcnQsIFNJR05B
TCh2aXNpYmxlQ2hhbmdlZCgpKSwgdmlld3BvcnQsIFNMT1QoX3Ffb25WaXNpYmxlQ2hhbmdlZCgp
KSk7CiAgICAgcGFnZVZpZXcucmVzZXQobmV3IFFRdWlja1dlYlBhZ2Uodmlld3BvcnQpKTsKKwor
ICAgIG5hdmlnYXRpb25IaXN0b3J5ID0gYWRvcHRQdHIoUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJp
dmF0ZTo6Y3JlYXRlSGlzdG9yeSgpKTsKIH0KIAogUVF1aWNrV2ViVmlld1ByaXZhdGU6On5RUXVp
Y2tXZWJWaWV3UHJpdmF0ZSgpCkBAIC05MSwxNCArOTQsMTMgQEAgdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGEKICAgICBwYWdlTG9hZENsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlTG9hZENsaWVudCh0
b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpLCBxX3B0cikpOwogICAgIHBhZ2VQb2xpY3lDbGllbnQu
cmVzZXQobmV3IFF0V2ViUGFnZVBvbGljeUNsaWVudCh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkp
LCBxX3B0cikpOwogICAgIHBhZ2VVSUNsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSwgcV9wdHIpKTsKLSAgICBuYXZpZ2F0aW9uSGlzdG9y
eSA9IGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3Rvcnko
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSkpOworICAgIG5hdmlnYXRpb25IaXN0b3J5LT5kLT5z
ZXRQYWdlKHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSkpOwogCiAgICAgUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFP
YmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJM
KFFVcmwsIFFVcmwpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVy
bCwgUVVybCkpKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdl
ZChRVXJsKSksIGljb25EYXRhYmFzZSwgU0xPVChyZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkp
KTsKIAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBi
ZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVo
YXZpb3VyKGZhbHNlKTsKICAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIHBhZ2VD
bGllbnQuaW5pdGlhbGl6ZShxX3B0ciwgcGFnZVZpZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0
YSgpLCAmdW5kb0NvbnRyb2xsZXIpOwpAQCAtMTA2LDYgKzEwOCwxOCBAQCB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91cFJlZiBwYQogCiAgICAgLy8gVHJpZ2dlciBzZXR0aW5nIG9mIGNvcnJlY3QgdmlzaWJpbGl0
eSBmbGFncyBhZnRlciBldmVyeXRoaW5nIHdhcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkLgog
ICAgIF9xX29uVmlzaWJsZUNoYW5nZWQoKTsKKworICAgIGlmIChwcmVmZXJlbmNlcykKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPmQtPnNldFdlYlZpZXdQcml2YXRlKHRoaXMpOworCisgICAgY29uc3Qg
UU9iamVjdExpc3QgY2hpbGRyZW4gPSBxX3B0ci0+ZXhwZXJpbWVudGFsKCktPnNjaGVtZVBhcmVu
dC0+Y2hpbGRyZW4oKTsKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgY2hpbGRyZW4u
Y291bnQoKTsgaW5kZXgrKykgeworICAgICAgICBRT2JqZWN0KiBjaGlsZCA9IGNoaWxkcmVuLmF0
KGluZGV4KTsKKyAgICAgICAgUVF1aWNrVXJsU2NoZW1lRGVsZWdhdGUqIGRlbGVnYXRlID0gcW9i
amVjdF9jYXN0PFFRdWlja1VybFNjaGVtZURlbGVnYXRlKj4oY2hpbGQpOworICAgICAgICB3ZWJQ
YWdlUHJveHktPnJlZ2lzdGVyQXBwbGljYXRpb25TY2hlbWUoZGVsZWdhdGUtPnNjaGVtZSgpKTsK
KyAgICB9CisKKyAgICBpc0luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIAogdm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAtMTMyLDYgKzE0NiwxMCBAQCB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplRGVza3RvcChRUXVpY2tXZWJWaWV3KiB2
aWV3cG9ydCkKICAgICBpbnRlcmFjdGlvbkVuZ2luZS5yZXNldCgwKTsKICAgICBwYWdlVmlldy0+
ZC0+ZXZlbnRIYW5kbGVyLT5zZXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKDApOwogICAgIGVu
YWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSBvdXIgZ2VvbWV0
cnkuCisgICAgcGFnZVZpZXctPnNldFdpZHRoKHZpZXdwb3J0LT53aWR0aCgpKTsKKyAgICBwYWdl
Vmlldy0+c2V0SGVpZ2h0KHZpZXdwb3J0LT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OmluaXRpYWxpemVUb3VjaChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKQEAg
LTQ5NCw4ICs1MTIsMTIgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0VXNlVHJhZGl0
aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGJvb2wgZW5hYmxlKQogCiAgICAgLy8gRG8gbm90IGd1YXJk
LCB0ZXN0aW5nIGZvciB0aGUgc2FtZSB2YWx1ZSwgYXMgd2UgY2FsbCB0aGlzIGZyb20gdGhlIGNv
bnN0cnVjdG9yLgogCi0gICAgd2ViUGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dCghZW5hYmxl
KTsKICAgICBwYWdlVmlldy0+c2V0VXNlc1RyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cihlbmFi
bGUpOworCisgICAgaWYgKCFpc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKKyAgICB3
ZWJQYWdlUHJveHktPnNldFVzZUZpeGVkTGF5b3V0KCFlbmFibGUpOwogICAgIGlmIChlbmFibGUp
CiAgICAgICAgIGluaXRpYWxpemVEZXNrdG9wKHEpOwogICAgIGVsc2UKQEAgLTU0MSw2ICs1NjMs
NyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIEFTU0VSVChlbmFibGVkICE9IG1fbmF2aWdhdG9yUXRPYmpl
Y3RFbmFibGVkKTsKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGhhdmUgdG8ga2VlcCB0aGlz
IGluZm9ybWF0aW9uIGluIGJvdGggcHJvY2Vzc2VzIGFuZCB0aGUgc2V0dGluZyBpcyBhc3luY2hy
b25vdXMuCiAgICAgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQgPSBlbmFibGVkOworCiAgICAg
Y29udGV4dC0+c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKHdlYlBhZ2VQcm94eS5nZXQoKSwg
ZW5hYmxlZCk7CiB9CiAKQEAgLTY1OCw3ICs2ODEsMTEgQEAgUVdlYlByZWZlcmVuY2VzKiBRUXVp
Y2tXZWJWaWV3RXhwZXJpbWVudGFsOjpwcmVmZXJlbmNlcygpIGNvbnN0CiB7CiAgICAgUVF1aWNr
V2ViVmlld1ByaXZhdGUqIGNvbnN0IGQgPSBkX3B0cjsKICAgICBpZiAoIWQtPnByZWZlcmVuY2Vz
KQotICAgICAgICBkLT5wcmVmZXJlbmNlcyA9IGFkb3B0UHRyKFFXZWJQcmVmZXJlbmNlc1ByaXZh
dGU6OmNyZWF0ZVByZWZlcmVuY2VzKGQpKTsKKyAgICAgICAgZC0+cHJlZmVyZW5jZXMgPSBhZG9w
dFB0cihRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcygpKTsKKworICAg
IGlmIChkLT5pc0luaXRpYWxpemVkKQorICAgICAgICBkLT5wcmVmZXJlbmNlcy0+ZC0+c2V0V2Vi
Vmlld1ByaXZhdGUoZCk7CisKICAgICByZXR1cm4gZC0+cHJlZmVyZW5jZXMuZ2V0KCk7CiB9CiAK
QEAgLTcwOCw3ICs3MzUsMTAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzY2hl
bWVEZWxlZ2F0ZXNfQXBwZW5kKFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTwKICAgICBpZiAoIXdl
YlZpZXdFeHBlcmltZW50YWwpCiAgICAgICAgIHJldHVybjsKICAgICBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSogZCA9IHdlYlZpZXdFeHBlcmltZW50YWwtPmRfZnVuYygpOwotICAgIGQtPndlYlBhZ2VQ
cm94eS0+cmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShzY2hlbWUtPnNjaGVtZSgpKTsKKworICAg
IC8vIEZJWE1FOiB0aGlzIHdpbGwgYXZvaWQgYSBzZWdmYXVsdCBidXQgd2lsbCBtYWtlIGN1c3Rv
bSBzY2hlbWUgcW1sIHRlc3QgZmFpbAorICAgIGlmIChkLT53ZWJQYWdlUHJveHkpCisgICAgICAg
IGQtPndlYlBhZ2VQcm94eS0+cmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShzY2hlbWUtPnNjaGVt
ZSgpKTsKIH0KIAogaW50IFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNjaGVtZURlbGVnYXRl
c19Db3VudChRRGVjbGFyYXRpdmVMaXN0UHJvcGVydHk8UVF1aWNrVXJsU2NoZW1lRGVsZWdhdGU+
KiBwcm9wZXJ0eSkKQEAgLTc4MCw5ICs4MTAsNiBAQCBRUXVpY2tXZWJWaWV3OjpRUXVpY2tXZWJW
aWV3KFFRdWlja0l0ZW0qIHBhcmVudCkKICAgICAsIGRfcHRyKG5ldyBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSh0aGlzKSkKICAgICAsIG1fZXhwZXJpbWVudGFsKG5ldyBRUXVpY2tXZWJWaWV3RXhwZXJp
bWVudGFsKHRoaXMpKQogewotICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLSAgICBkLT5pbml0aWFs
aXplKCk7Ci0gICAgZC0+aW5pdGlhbGl6ZVRvdWNoKHRoaXMpOwogfQogCiBRUXVpY2tXZWJWaWV3
OjpRUXVpY2tXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYsIFFRdWlja0l0ZW0qIHBhcmVudCkKQEAgLTg0MSw2ICs4NjgsOCBAQCB2b2lk
IFFRdWlja1dlYlZpZXc6OnJlbG9hZCgpCiBRVXJsIFFRdWlja1dlYlZpZXc6OnVybCgpIGNvbnN0
CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFs
aXplZCkKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKICAgICBSZWZQdHI8V2ViRnJhbWVQcm94eT4g
bWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJhbWUoKTsKICAgICBpZiAoIW1haW5G
cmFtZSkKICAgICAgICAgcmV0dXJuIFFVcmwoKTsKQEAgLTg1MCwzMCArODc5LDQwIEBAIFFVcmwg
UVF1aWNrV2ViVmlldzo6dXJsKCkgY29uc3QKIFFVcmwgUVF1aWNrV2ViVmlldzo6aWNvbigpIGNv
bnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0
aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKICAgICByZXR1cm4gZC0+bV9pY29uVVJM
OwogfQogCiBpbnQgUVF1aWNrV2ViVmlldzo6bG9hZFByb2dyZXNzKCkgY29uc3QKIHsKICAgICBR
X0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAg
ICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gZC0+cGFnZUxvYWRDbGllbnQtPmxvYWRQcm9ncmVz
cygpOwogfQogCiBib29sIFFRdWlja1dlYlZpZXc6OmNhbkdvQmFjaygpIGNvbnN0CiB7CiAgICAg
UV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPmNhbkdvQmFj
aygpOwogfQogCiBib29sIFFRdWlja1dlYlZpZXc6OmNhbkdvRm9yd2FyZCgpIGNvbnN0CiB7CiAg
ICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFsaXplZCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBkLT53ZWJQYWdlUHJveHktPmNhbkdv
Rm9yd2FyZCgpOwogfQogCiBib29sIFFRdWlja1dlYlZpZXc6OmxvYWRpbmcoKSBjb25zdAogewog
ICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJGcmFtZVByb3h5
PiBtYWluRnJhbWUgPSBkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpOwogICAgIHJldHVybiBt
YWluRnJhbWUgJiYgIShXZWJGcmFtZVByb3h5OjpMb2FkU3RhdGVGaW5pc2hlZCA9PSBtYWluRnJh
bWUtPmxvYWRTdGF0ZSgpKTsKIH0KQEAgLTg4MSw2ICs5MjAsOCBAQCBib29sIFFRdWlja1dlYlZp
ZXc6OmxvYWRpbmcoKSBjb25zdAogYm9vbCBRUXVpY2tXZWJWaWV3OjpjYW5SZWxvYWQoKSBjb25z
dAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQtPmlzSW5pdGlh
bGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJGcmFt
ZVByb3h5PiBtYWluRnJhbWUgPSBkLT53ZWJQYWdlUHJveHktPm1haW5GcmFtZSgpOwogICAgIGlm
IChtYWluRnJhbWUpCiAgICAgICAgIHJldHVybiAoV2ViRnJhbWVQcm94eTo6TG9hZFN0YXRlRmlu
aXNoZWQgPT0gbWFpbkZyYW1lLT5sb2FkU3RhdGUoKSk7CkBAIC05MTQsNiArOTU1LDggQEAgUVJl
Y3RGIFFRdWlja1dlYlZpZXc6Om1hcFJlY3RGcm9tV2ViQ29udGVudChjb25zdCBRUmVjdEYmIHJl
Y3RJbkNTU0Nvb3JkaW5hdGVzKQogUVN0cmluZyBRUXVpY2tXZWJWaWV3Ojp0aXRsZSgpIGNvbnN0
CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+aXNJbml0aWFs
aXplZCkKKyAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKICAgICByZXR1cm4gZC0+d2ViUGFnZVBy
b3h5LT5wYWdlVGl0bGUoKTsKIH0KIApAQCAtOTYyLDcgKzEwMDUsMTIgQEAgdm9pZCBRUXVpY2tX
ZWJWaWV3OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogdm9pZCBRUXVpY2tXZWJWaWV3OjpnZW9tZXRy
eUNoYW5nZWQoY29uc3QgUVJlY3RGJiBuZXdHZW9tZXRyeSwgY29uc3QgUVJlY3RGJiBvbGRHZW9t
ZXRyeSkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7CisKKyAgICBpZiAoIWQtPmlzSW5pdGlh
bGl6ZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIFFRdWlja0l0ZW06Omdlb21ldHJ5Q2hhbmdl
ZChuZXdHZW9tZXRyeSwgb2xkR2VvbWV0cnkpOworCiAgICAgaWYgKG5ld0dlb21ldHJ5LnNpemUo
KSAhPSBvbGRHZW9tZXRyeS5zaXplKCkpIHsKICAgICAgICAgaWYgKGQtPnBhZ2VWaWV3LT51c2Vz
VHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkpIHsKICAgICAgICAgICAgIGQtPnBhZ2VWaWV3
LT5zZXRXaWR0aChuZXdHZW9tZXRyeS53aWR0aCgpKTsKQEAgLTExMTgsNCArMTE2NiwxNiBAQCB2
b2lkIFFRdWlja1dlYlZpZXc6OmxvYWRIdG1sKGNvbnN0IFFTdHJpbmcmIGh0bWwsIGNvbnN0IFFV
cmwmIGJhc2VVcmwpCiAgICAgZC0+d2ViUGFnZVByb3h5LT5sb2FkSFRNTFN0cmluZyhodG1sLCBi
YXNlVXJsLnRvU3RyaW5nKCkpOwogfQogCit2b2lkIFFRdWlja1dlYlZpZXc6OmNvbXBvbmVudENv
bXBsZXRlKCkKK3sKKyAgICBRUXVpY2tJdGVtOjpjb21wb25lbnRDb21wbGV0ZSgpOworCisgICAg
UV9EKFFRdWlja1dlYlZpZXcpOworICAgIGQtPmluaXRpYWxpemUoKTsKKworICAgIC8vIEluaXRp
YWxpemUgdmlldyBjb3JyZWN0bHkgYXMgZGVza3RvcCBvciB0b3VjaCwgYWNjb3JkaW5nIHRvCisg
ICAgLy8gdGhlIGV4cGVyaW1lbnRhbCBwcm9wZXJ0eSB1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhh
dmlvdXIuCisgICAgZC0+c2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGQtPnBhZ2VW
aWV3LT51c2VzVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKCkpOworfQorCiAjaW5jbHVkZSAi
bW9jX3FxdWlja3dlYnZpZXdfcC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCAwZmEwNzkxLi41OTU5NGRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAg
LTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoKTsgLy8gT25seSBuZWVkZWQgYnkgV1RSLgogCisgICAgdmlydHVhbCB2b2lkIGNvbXBv
bmVudENvbXBsZXRlKCk7CisKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgbG9hZChjb25zdCBR
VXJsJik7CiAgICAgdm9pZCBsb2FkSHRtbChjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBRVXJs
JiBiYXNlVXJsID0gUVVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCA0YmU3MTcwLi4wNzhjNjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5o
CkBAIC0xNjEsNiArMTYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHBhZ2VJc1N1c3BlbmRlZDsK
ICAgICBib29sIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkOwogICAgIFFVcmwgbV9pY29uVVJM
OworICAgIGJvb2wgaXNJbml0aWFsaXplZDsKIH07CiAKICNlbmRpZiAvLyBxcXVpY2t3ZWJ2aWV3
X3BfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJu
YXZpZ2F0aW9uaGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAKaW5kZXggZmY3N2RhZS4uNGU1NDE2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25o
aXN0b3J5LmNwcApAQCAtNDMsMzYgKzQzLDQ2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKLVFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZTo6UVdlYk5hdmlnYXRpb25MaXN0TW9k
ZWxQcml2YXRlKFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3QpCi0gICAgOiBtX2JhY2tGb3J3YXJk
TGlzdChsaXN0KQotICAgICwgaW5kZXhTaWduKDApCitRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFBy
aXZhdGU6OlFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZSgpCisgICAgOiBpbmRleFNpZ24o
MCkKIHsKIH0KIAotUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIFFXZWJOYXZpZ2F0aW9uTGlzdE1v
ZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKFdLQmFja0ZvcndhcmRMaXN0UmVm
IGxpc3QpCitRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCogUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQ
cml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwoKQogewogICAgIFFXZWJOYXZpZ2F0aW9u
TGlzdE1vZGVsKiBtb2RlbCA9IG5ldyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCgpOwotICAgIG1v
ZGVsLT5kID0gbmV3IFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZShsaXN0KTsKKyAgICBt
b2RlbC0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUoKTsKICAgICByZXR1
cm4gbW9kZWw7CiB9CiAKK3ZvaWQgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpzZXRC
YWNrRm9yd2FyZExpc3QoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdCkKK3sKKyAgICBtX2JhY2tG
b3J3YXJkTGlzdCA9IGxpc3Q7Cit9CisKK1FXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OlFX
ZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGUoKQoreworICAgIG1fYmFja05hdmlnYXRpb25Nb2Rl
bCA9IGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2
aWdhdGlvbk1vZGVsKCkpOworICAgIG1fZm9yd2FyZE5hdmlnYXRpb25Nb2RlbCA9IGFkb3B0UHRy
KFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVs
KCkpOworfQogCi1RV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkhp
c3RvcnlQcml2YXRlKFdLUGFnZVJlZiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBt
X2JhY2tGb3J3YXJkTGlzdChXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QocGFnZSkpCi0gICAgLCBt
X2JhY2tOYXZpZ2F0aW9uTW9kZWwoYWRvcHRQdHIoUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2
YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwobV9iYWNrRm9yd2FyZExpc3QuZ2V0KCkpKSkK
LSAgICAsIG1fZm9yd2FyZE5hdmlnYXRpb25Nb2RlbChhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxp
c3RNb2RlbFByaXZhdGU6OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbChtX2JhY2tGb3J3YXJkTGlz
dC5nZXQoKSkpKQordm9pZCBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlOjpzZXRQYWdlKFdL
UGFnZVJlZiBwYWdlKQogeworICAgIG1fcGFnZSA9IHBhZ2U7CisgICAgbV9iYWNrRm9yd2FyZExp
c3QgPSBXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QocGFnZSk7CisgICAgbV9iYWNrTmF2aWdhdGlv
bk1vZGVsLT5kLT5zZXRCYWNrRm9yd2FyZExpc3QobV9iYWNrRm9yd2FyZExpc3QuZ2V0KCkpOwor
ICAgIG1fZm9yd2FyZE5hdmlnYXRpb25Nb2RlbC0+ZC0+c2V0QmFja0ZvcndhcmRMaXN0KG1fYmFj
a0ZvcndhcmRMaXN0LmdldCgpKTsKKwogICAgIG1fYmFja05hdmlnYXRpb25Nb2RlbC0+ZC0+Y291
bnQgPSAmV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNrTGlzdENvdW50OwogICAgIG1fYmFja05hdmln
YXRpb25Nb2RlbC0+ZC0+aW5kZXhTaWduID0gLTE7CiAgICAgbV9mb3J3YXJkTmF2aWdhdGlvbk1v
ZGVsLT5kLT5jb3VudCA9ICZXS0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRMaXN0Q291bnQ7CiAg
ICAgbV9mb3J3YXJkTmF2aWdhdGlvbk1vZGVsLT5kLT5pbmRleFNpZ24gPSAxOwogfQogCi1RV2Vi
TmF2aWdhdGlvbkhpc3RvcnkqIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhp
c3RvcnkoV0tQYWdlUmVmIHBhZ2UpCitRV2ViTmF2aWdhdGlvbkhpc3RvcnkqIFFXZWJOYXZpZ2F0
aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3RvcnkoKQogewogICAgIFFXZWJOYXZpZ2F0aW9u
SGlzdG9yeSogaGlzdG9yeSA9IG5ldyBRV2ViTmF2aWdhdGlvbkhpc3RvcnkoKTsKLSAgICBoaXN0
b3J5LT5kID0gbmV3IFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGUocGFnZSk7CisgICAgaGlz
dG9yeS0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKCk7CiAgICAgcmV0dXJu
IGhpc3Rvcnk7CiB9CiAKQEAgLTExMiw2ICsxMjIsOCBAQCBRV2ViTmF2aWdhdGlvbkxpc3RNb2Rl
bDo6flFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKCkKIAogaW50IFFXZWJOYXZpZ2F0aW9uTGlzdE1v
ZGVsOjpyb3dDb3VudChjb25zdCBRTW9kZWxJbmRleCYpIGNvbnN0CiB7CisgICAgaWYoIWQtPm1f
YmFja0ZvcndhcmRMaXN0KQorICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gZC0+Y291bnQo
ZC0+bV9iYWNrRm9yd2FyZExpc3QuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5X3BfcC5oCmlu
ZGV4IGM4Y2M1YWIuLmY5YmIwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYm5hdmlnYXRpb25oaXN0b3J5X3BfcC5oCkBAIC00Myw5ICs0
MywxMCBAQCBjbGFzcyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbDsKIAogY2xhc3MgUVdlYk5hdmln
YXRpb25MaXN0TW9kZWxQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBRV2ViTmF2aWdhdGlvbkxpc3RN
b2RlbFByaXZhdGUoV0tCYWNrRm9yd2FyZExpc3RSZWYpOworICAgIFFXZWJOYXZpZ2F0aW9uTGlz
dE1vZGVsUHJpdmF0ZSgpOwogCi0gICAgc3RhdGljIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKiBj
cmVhdGVXZWJOYXZpZ2F0aW9uTW9kZWwoV0tCYWNrRm9yd2FyZExpc3RSZWYpOworICAgIHN0YXRp
YyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCogY3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKCk7Cisg
ICAgdm9pZCBzZXRCYWNrRm9yd2FyZExpc3QoV0tCYWNrRm9yd2FyZExpc3RSZWYpOwogCiAgICAg
dW5zaWduZWQgKCpjb3VudCkoV0tCYWNrRm9yd2FyZExpc3RSZWYpOwogICAgIFdLUmV0YWluUHRy
PFdLQmFja0ZvcndhcmRMaXN0UmVmPiBtX2JhY2tGb3J3YXJkTGlzdDsKQEAgLTU0LDkgKzU1LDEw
IEBAIHB1YmxpYzoKIAogY2xhc3MgUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFFXZWJOYXZpZ2F0aW9uSGlzdG9yeSogY3JlYXRlSGlzdG9yeShXS1Bh
Z2VSZWYpOworICAgIHN0YXRpYyBRV2ViTmF2aWdhdGlvbkhpc3RvcnkqIGNyZWF0ZUhpc3Rvcnko
KTsKKyAgICB2b2lkIHNldFBhZ2UoV0tQYWdlUmVmKTsKIAotICAgIFFXZWJOYXZpZ2F0aW9uSGlz
dG9yeVByaXZhdGUoV0tQYWdlUmVmKTsKKyAgICBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRl
KCk7CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQgZ29CYWNrVG8oaW50IGluZGV4KTsKICAg
ICB2b2lkIGdvRm9yd2FyZFRvKGludCBpbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKaW5kZXggNzFjMTFhZi4uYzMzNjcy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZl
cmVuY2VzLmNwcApAQCAtMjgsMTMgKzI4LDMyIEBACiAjaW5jbHVkZSAicXF1aWNrd2Vidmlld19w
X3AuaCIKICNpbmNsdWRlICJxd2VicHJlZmVyZW5jZXNfcF9wLmgiCiAKLVFXZWJQcmVmZXJlbmNl
cyogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoUVF1aWNrV2ViVmll
d1ByaXZhdGUqIHdlYlZpZXdQcml2YXRlKQorUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6UVdlYlBy
ZWZlcmVuY2VzUHJpdmF0ZSgpCisgICAgOiB3ZWJWaWV3UHJpdmF0ZSgwKQorICAgICwgaW5pdGlh
bFF0T2JqZWN0RW5hYmxlZChmYWxzZSkKK3sKK30KKworUVdlYlByZWZlcmVuY2VzKiBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcygpCiB7CiAgICAgUVdlYlByZWZlcmVu
Y2VzKiBwcmVmcyA9IG5ldyBRV2ViUHJlZmVyZW5jZXM7Ci0gICAgcHJlZnMtPmQtPndlYlZpZXdQ
cml2YXRlID0gd2ViVmlld1ByaXZhdGU7CiAgICAgcmV0dXJuIHByZWZzOwogfQogCit2b2lkIFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OnNldFdlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXdQcml2
YXRlKiB3ZWJWaWV3KQoreworICAgIHdlYlZpZXdQcml2YXRlID0gd2ViVmlldzsKKworICAgIFFN
YXA8UVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6V2ViQXR0cmlidXRlLCBib29sPjo6Y29uc3RfaXRl
cmF0b3IgaSA9IGluaXRpYWxQcmVmZXJlbmNlcy5jb25zdEJlZ2luKCk7CisgICAgd2hpbGUgKGkg
IT0gaW5pdGlhbFByZWZlcmVuY2VzLmNvbnN0RW5kKCkpIHsKKyAgICAgICAgc2V0QXR0cmlidXRl
KGkua2V5KCksIGkudmFsdWUoKSk7CisgICAgICAgICsraTsKKyAgICB9CisKKyAgICBpZiAoaW5p
dGlhbFF0T2JqZWN0RW5hYmxlZCkKKyAgICAgICAgd2ViVmlld1ByaXZhdGUtPnNldE5hdmlnYXRv
clF0T2JqZWN0RW5hYmxlZChpbml0aWFsUXRPYmplY3RFbmFibGVkKTsKK30KKwogYm9vbCBRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6
OldlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdAogewogICAgIHN3aXRjaCAoYXR0cikgewpAQCAtNjIs
NiArODEsMTEgQEAgYm9vbCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjp0ZXN0QXR0cmlidXRlKFFX
ZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0ZQogCiB2b2lkIFFXZWJQcmVmZXJlbmNl
c1ByaXZhdGU6OnNldEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1
dGUgYXR0ciwgYm9vbCBlbmFibGUpCiB7CisgICAgaWYgKCF3ZWJWaWV3UHJpdmF0ZSkgeworICAg
ICAgICBpbml0aWFsUHJlZmVyZW5jZXMuaW5zZXJ0KGF0dHIsIGVuYWJsZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBzd2l0Y2ggKGF0dHIpIHsKICAgICBjYXNlIEF1dG9Mb2FkSW1h
Z2VzOgogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KHBy
ZWZlcmVuY2VzUmVmKCksIGVuYWJsZSk7CkBAIC0yODIsNiArMzA2LDggQEAgdm9pZCBRV2ViUHJl
ZmVyZW5jZXM6OnNldERuc1ByZWZldGNoRW5hYmxlZChib29sIGVuYWJsZSkKIAogYm9vbCBRV2Vi
UHJlZmVyZW5jZXM6Om5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCgpIGNvbnN0CiB7CisgICAgaWYg
KCFkLT53ZWJWaWV3UHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuIGQtPmluaXRpYWxRdE9iamVjdEVu
YWJsZWQ7CiAgICAgcmV0dXJuIGQtPndlYlZpZXdQcml2YXRlLT5uYXZpZ2F0b3JRdE9iamVjdEVu
YWJsZWQoKTsKIH0KIApAQCAtMjg5LDYgKzMxNSwxMiBAQCB2b2lkIFFXZWJQcmVmZXJlbmNlczo6
c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGJvb2wgZW5hYmxlKQogewogICAgIGlmIChlbmFi
bGUgPT0gbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKKworICAg
IGlmICghZC0+d2ViVmlld1ByaXZhdGUpIHsKKyAgICAgICAgZC0+aW5pdGlhbFF0T2JqZWN0RW5h
YmxlZCA9IGVuYWJsZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGQtPndlYlZpZXdQ
cml2YXRlLT5zZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZW5hYmxlKTsKICAgICBlbWl0IG5h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZENoYW5nZWQoKTsKIH0KQEAgLTM5NCw2ICs0MjYsNyBAQCB2
b2lkIFFXZWJQcmVmZXJlbmNlczo6c2V0RGVmYXVsdEZpeGVkRm9udFNpemUodW5zaWduZWQgc2l6
ZSkKIAogV0tQcmVmZXJlbmNlc1JlZiBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpwcmVmZXJlbmNl
c1JlZigpIGNvbnN0CiB7CisgICAgQVNTRVJUKHdlYlZpZXdQcml2YXRlKTsKICAgICBXS1BhZ2VH
cm91cFJlZiBwYWdlR3JvdXBSZWYgPSB0b0FQSSh3ZWJWaWV3UHJpdmF0ZS0+d2ViUGFnZVByb3h5
LT5wYWdlR3JvdXAoKSk7CiAgICAgcmV0dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFn
ZUdyb3VwUmVmKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXdlYnByZWZlcmVuY2VzX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnByZWZlcmVuY2VzX3AuaAppbmRleCAyOWRmMDRjLi5mODMyNDZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcC5oCkBAIC0x
MzYsNiArMTM2LDggQEAgcHJpdmF0ZToKICAgICBRV2ViUHJlZmVyZW5jZXNQcml2YXRlICpkOwog
CiAgICAgZnJpZW5kIGNsYXNzIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU7CisgICAgZnJpZW5kIGNs
YXNzIFFRdWlja1dlYlZpZXdQcml2YXRlOworICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOwogfTsKIAogI2VuZGlmIC8vIHF3ZWJwcmVmZXJlbmNlc19wX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3Bf
cC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9w
LmgKaW5kZXggZjRlZjEzYy4uYWZiMDA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXNfcF9wLmgKQEAgLTU0LDcgKzU0LDggQEAg
cHVibGljOgogICAgICAgICBEZWZhdWx0Rml4ZWRGb250U2l6ZQogICAgIH07CiAKLSAgICBzdGF0
aWMgUVdlYlByZWZlcmVuY2VzKiBjcmVhdGVQcmVmZXJlbmNlcyhRUXVpY2tXZWJWaWV3UHJpdmF0
ZSopOworICAgIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGUoKTsKKyAgICBzdGF0aWMgUVdlYlByZWZl
cmVuY2VzKiBjcmVhdGVQcmVmZXJlbmNlcygpOwogCiAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoV2Vi
QXR0cmlidXRlIGF0dHIsIGJvb2wgZW5hYmxlKTsKICAgICBib29sIHRlc3RBdHRyaWJ1dGUoV2Vi
QXR0cmlidXRlIGF0dHIpIGNvbnN0OwpAQCAtNzAsNiArNzEsMTEgQEAgcHVibGljOgogICAgIFFR
dWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZTsKIAogICAgIHN0YXRpYyBRV2ViUHJl
ZmVyZW5jZXNQcml2YXRlKiBnZXQoUVdlYlByZWZlcmVuY2VzKik7CisKKyAgICB2b2lkIHNldFdl
YlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXdQcml2YXRlKik7CisKKyAgICBRTWFwPFdlYkF0dHJp
YnV0ZSwgYm9vbD4gaW5pdGlhbFByZWZlcmVuY2VzOworICAgIGJvb2wgaW5pdGlhbFF0T2JqZWN0
RW5hYmxlZDsKIH07CiAKICNlbmRpZiAvLyBxd2VicHJlZmVyZW5jZXNfcF9wX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnZpZXdwb3J0aW5mby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJ2aWV3cG9ydGluZm8uY3BwCmlu
ZGV4IDczNTE5NmYuLjZlMjhmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnZpZXdwb3J0aW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2Vidmlld3BvcnRpbmZvLmNwcApAQCAtMzgsMTEgKzM4LDE2IEBAIFFXZWJW
aWV3cG9ydEluZm86On5RV2ViVmlld3BvcnRJbmZvKCkKIAogUVNpemUgUVdlYlZpZXdwb3J0SW5m
bzo6Y29udGVudHNTaXplKCkgY29uc3QKIHsKKyAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmlz
SW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBRU2l6ZSgpOwogICAgIHJldHVybiBRU2l6ZSht
X3dlYlZpZXdQcml2YXRlLT5wYWdlVmlldy0+Y29udGVudFNpemUoKS50b1NpemUoKSk7CiB9CiAK
IFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86OmN1cnJlbnRTY2FsZSgpIGNvbnN0CiB7CisgICAg
aWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gMTsK
KwogICAgIGlmICghbV93ZWJWaWV3UHJpdmF0ZS0+aW50ZXJhY3Rpb25FbmdpbmUpCiAgICAgICAg
IHJldHVybiBRVmFyaWFudCgpOwogCkBAIC01MSw2ICs1Niw5IEBAIFFWYXJpYW50IFFXZWJWaWV3
cG9ydEluZm86OmN1cnJlbnRTY2FsZSgpIGNvbnN0CiAKIFFWYXJpYW50IFFXZWJWaWV3cG9ydElu
Zm86OmRldmljZVBpeGVsUmF0aW8oKSBjb25zdAogeworICAgIGlmICghbV93ZWJWaWV3UHJpdmF0
ZS0+aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIDE7CisKICAgICBpZiAoIW1fd2ViVmll
d1ByaXZhdGUtPmludGVyYWN0aW9uRW5naW5lKQogICAgICAgICByZXR1cm4gUVZhcmlhbnQoKTsK
IApAQCAtNTksNiArNjcsOSBAQCBRVmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjpkZXZpY2VQaXhl
bFJhdGlvKCkgY29uc3QKIAogUVZhcmlhbnQgUVdlYlZpZXdwb3J0SW5mbzo6aW5pdGlhbFNjYWxl
KCkgY29uc3QKIHsKKyAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmlzSW5pdGlhbGl6ZWQpCisg
ICAgICAgIHJldHVybiAxOworCiAgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pbnRlcmFjdGlv
bkVuZ2luZSkKICAgICAgICAgcmV0dXJuIFFWYXJpYW50KCk7CiAKQEAgLTY3LDYgKzc4LDkgQEAg
UVZhcmlhbnQgUVdlYlZpZXdwb3J0SW5mbzo6aW5pdGlhbFNjYWxlKCkgY29uc3QKIAogUVZhcmlh
bnQgUVdlYlZpZXdwb3J0SW5mbzo6bWluaW11bVNjYWxlKCkgY29uc3QKIHsKKyAgICBpZiAoIW1f
d2ViVmlld1ByaXZhdGUtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiAxOworCiAgICAg
aWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgcmV0dXJu
IFFWYXJpYW50KCk7CiAKQEAgLTc1LDYgKzg5LDkgQEAgUVZhcmlhbnQgUVdlYlZpZXdwb3J0SW5m
bzo6bWluaW11bVNjYWxlKCkgY29uc3QKIAogUVZhcmlhbnQgUVdlYlZpZXdwb3J0SW5mbzo6bWF4
aW11bVNjYWxlKCkgY29uc3QKIHsKKyAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmlzSW5pdGlh
bGl6ZWQpCisgICAgICAgIHJldHVybiAxOworCiAgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5p
bnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAgcmV0dXJuIFFWYXJpYW50KCk7CiAKQEAgLTgzLDYg
KzEwMCw5IEBAIFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86Om1heGltdW1TY2FsZSgpIGNvbnN0
CiAKIFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86OmlzU2NhbGFibGUoKSBjb25zdAogeworICAg
IGlmICghbV93ZWJWaWV3UHJpdmF0ZS0+aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKICAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmludGVyYWN0aW9uRW5naW5lKQogICAg
ICAgICByZXR1cm4gUVZhcmlhbnQoKTsKIApAQCAtOTEsNiArMTExLDkgQEAgUVZhcmlhbnQgUVdl
YlZpZXdwb3J0SW5mbzo6aXNTY2FsYWJsZSgpIGNvbnN0CiAKIFFWYXJpYW50IFFXZWJWaWV3cG9y
dEluZm86OmxheW91dFNpemUoKSBjb25zdAogeworICAgIGlmICghbV93ZWJWaWV3UHJpdmF0ZS0+
aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIFFTaXplKCk7CisKICAgICBpZiAoIW1fd2Vi
Vmlld1ByaXZhdGUtPmludGVyYWN0aW9uRW5naW5lKQogICAgICAgICByZXR1cm4gUVZhcmlhbnQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtB
Y2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3Jr
QWNjZXNzTWFuYWdlci5jcHAKaW5kZXggNTdiOTUzZi4uNjBjNTA1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuY3Bw
CkBAIC03Niw3ICs3Niw5IEBAIFFOZXR3b3JrUmVwbHkqIFF0TmV0d29ya0FjY2Vzc01hbmFnZXI6
OmNyZWF0ZVJlcXVlc3QoT3BlcmF0aW9uIG9wZXJhdGlvbiwgY29uc3QKIAogdm9pZCBRdE5ldHdv
cmtBY2Nlc3NNYW5hZ2VyOjpyZWdpc3RlckFwcGxpY2F0aW9uU2NoZW1lKGNvbnN0IFdlYlBhZ2Uq
IHBhZ2UsIGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKIHsKLSAgICBtX2FwcGxpY2F0aW9uU2NoZW1l
cy5pbnNlcnQocGFnZSwgc2NoZW1lLnRvTG93ZXIoKSk7CisgICAgY29uc3QgUVN0cmluZyBzY2hl
bWVMb3dlciA9IHNjaGVtZS50b0xvd2VyKCk7CisgICAgaWYgKCFtX2FwcGxpY2F0aW9uU2NoZW1l
cy5jb250YWlucyhwYWdlLCBzY2hlbWVMb3dlcikpCisgICAgICAgIG1fYXBwbGljYXRpb25TY2hl
bWVzLmluc2VydChwYWdlLCBzY2hlbWVMb3dlcik7CiB9CiAKIH0KLS0gCjEuNy44LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122278</attachid>
            <date>2012-01-12 11:57:15 -0800</date>
            <delta_ts>2012-01-16 15:02:32 -0800</delta_ts>
            <desc>WIP Patch v4</desc>
            <filename>0001-Moving-WebView-initialization-to-componentComplete.patch</filename>
            <type>text/plain</type>
            <size>22073</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">RnJvbSBhMDQ1ZmMwNTVkZTE5ZjhmZWE2YmJjNDkyMTEyN2UyOTkxMzI1NTRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNp
YUBvcGVuYm9zc2Eub3JnPgpEYXRlOiBUdWUsIDI3IERlYyAyMDExIDE0OjE1OjEzIC0wMzAwClN1
YmplY3Q6IFtQQVRDSCAxLzJdIE1vdmluZyBXZWJWaWV3IGluaXRpYWxpemF0aW9uIHRvIGNvbXBv
bmVudENvbXBsZXRlCgpTaWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgoKZml4aW5nIG9uIHRvcCBvZiBwaW5jaCB6b29tCgpT
aWduZWQtb2ZmLWJ5OiBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAgIHwgICA3OSArKysrKysrKysrKysrKysrKy0tCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oICB8ICAgIDIgKwogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oICAgfCAgICAxICsKIC4uLi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAgICAgIHwgICAzNiArKysrKystLS0K
IC4uLi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3AuaCAgIHwgICAx
MCArKy0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcCAg
IHwgICAzNyArKysrKysrKystCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVm
ZXJlbmNlc19wLmggICB8ICAgIDIgKwogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
cHJlZmVyZW5jZXNfcF9wLmggfCAgICA4ICsrLQogLi4uL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2Vidmlld3BvcnRpbmZvLmNwcCAgfCAgIDIzICsrKysrKwogLi4uL1dlYlByb2Nlc3MvcXQv
UXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAgICAgICAgfCAgICA0ICstCiAxMCBmaWxlcyBjaGFu
Z2VkLCAxNzMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggNDNkNDBiOS4u
NGUzNDY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCkBAIC02MCwxMCArNjAsMTMgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFR
dWlja1dlYlZpZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgaXNUcmFu
c2l0aW9uaW5nVG9OZXdQYWdlKGZhbHNlKQogICAgICwgcGFnZUlzU3VzcGVuZGVkKGZhbHNlKQog
ICAgICwgbV9uYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCisgICAgLCBpc0luaXRpYWxp
emVkKGZhbHNlKQogewogICAgIHZpZXdwb3J0LT5zZXRGbGFncyhRUXVpY2tJdGVtOjpJdGVtQ2xp
cHNDaGlsZHJlblRvU2hhcGUpOwogICAgIFFPYmplY3Q6OmNvbm5lY3Qodmlld3BvcnQsIFNJR05B
TCh2aXNpYmxlQ2hhbmdlZCgpKSwgdmlld3BvcnQsIFNMT1QoX3Ffb25WaXNpYmxlQ2hhbmdlZCgp
KSk7CiAgICAgcGFnZVZpZXcucmVzZXQobmV3IFFRdWlja1dlYlBhZ2Uodmlld3BvcnQpKTsKKwor
ICAgIG5hdmlnYXRpb25IaXN0b3J5ID0gYWRvcHRQdHIoUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJp
dmF0ZTo6Y3JlYXRlSGlzdG9yeSgpKTsKIH0KIAogUVF1aWNrV2ViVmlld1ByaXZhdGU6On5RUXVp
Y2tXZWJWaWV3UHJpdmF0ZSgpCkBAIC05MSwxNCArOTQsMTMgQEAgdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGEKICAgICBwYWdlTG9hZENsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlTG9hZENsaWVudCh0
b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkpLCBxX3B0cikpOwogICAgIHBhZ2VQb2xpY3lDbGllbnQu
cmVzZXQobmV3IFF0V2ViUGFnZVBvbGljeUNsaWVudCh0b0FQSSh3ZWJQYWdlUHJveHkuZ2V0KCkp
LCBxX3B0cikpOwogICAgIHBhZ2VVSUNsaWVudC5yZXNldChuZXcgUXRXZWJQYWdlVUlDbGllbnQo
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSwgcV9wdHIpKTsKLSAgICBuYXZpZ2F0aW9uSGlzdG9y
eSA9IGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3Rvcnko
dG9BUEkod2ViUGFnZVByb3h5LmdldCgpKSkpOworICAgIG5hdmlnYXRpb25IaXN0b3J5LT5kLT5z
ZXRQYWdlKHRvQVBJKHdlYlBhZ2VQcm94eS5nZXQoKSkpOwogCiAgICAgUXRXZWJJY29uRGF0YWJh
c2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwogICAgIFFP
YmplY3Q6OmNvbm5lY3QoaWNvbkRhdGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJM
KFFVcmwsIFFVcmwpKSwgcV9wdHIsIFNMT1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVy
bCwgUVVybCkpKTsKICAgICBRT2JqZWN0Ojpjb25uZWN0KHFfcHRyLCBTSUdOQUwodXJsQ2hhbmdl
ZChRVXJsKSksIGljb25EYXRhYmFzZSwgU0xPVChyZXF1ZXN0SWNvbkZvclBhZ2VVUkwoUVVybCkp
KTsKIAogICAgIC8vIEFueSBwYWdlIHNldHRpbmcgc2hvdWxkIHByZWZlcnJhYmxlIGJlIHNldCBi
ZWZvcmUgY3JlYXRpbmcgdGhlIHBhZ2UuCi0gICAgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVo
YXZpb3VyKGZhbHNlKTsKICAgICB3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKIAogICAgIHBhZ2VD
bGllbnQuaW5pdGlhbGl6ZShxX3B0ciwgcGFnZVZpZXdQcml2YXRlLT5ldmVudEhhbmRsZXIuZGF0
YSgpLCAmdW5kb0NvbnRyb2xsZXIpOwpAQCAtMTA2LDYgKzEwOCwxOCBAQCB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VH
cm91cFJlZiBwYQogCiAgICAgLy8gVHJpZ2dlciBzZXR0aW5nIG9mIGNvcnJlY3QgdmlzaWJpbGl0
eSBmbGFncyBhZnRlciBldmVyeXRoaW5nIHdhcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkLgog
ICAgIF9xX29uVmlzaWJsZUNoYW5nZWQoKTsKKworICAgIGlmIChwcmVmZXJlbmNlcykKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPmQtPnNldFdlYlZpZXdQcml2YXRlKHRoaXMpOworCisgICAgY29uc3Qg
UU9iamVjdExpc3QgY2hpbGRyZW4gPSBxX3B0ci0+ZXhwZXJpbWVudGFsKCktPnNjaGVtZVBhcmVu
dC0+Y2hpbGRyZW4oKTsKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgY2hpbGRyZW4u
Y291bnQoKTsgaW5kZXgrKykgeworICAgICAgICBRT2JqZWN0KiBjaGlsZCA9IGNoaWxkcmVuLmF0
KGluZGV4KTsKKyAgICAgICAgUVF1aWNrVXJsU2NoZW1lRGVsZWdhdGUqIGRlbGVnYXRlID0gcW9i
amVjdF9jYXN0PFFRdWlja1VybFNjaGVtZURlbGVnYXRlKj4oY2hpbGQpOworICAgICAgICB3ZWJQ
YWdlUHJveHktPnJlZ2lzdGVyQXBwbGljYXRpb25TY2hlbWUoZGVsZWdhdGUtPnNjaGVtZSgpKTsK
KyAgICB9CisKKyAgICBpc0luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIAogdm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQpAQCAtMTMyLDYgKzE0NiwxMCBAQCB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjppbml0aWFsaXplRGVza3RvcChRUXVpY2tXZWJWaWV3KiB2
aWV3cG9ydCkKICAgICBpbnRlcmFjdGlvbkVuZ2luZS5yZXNldCgwKTsKICAgICBwYWdlVmlldy0+
ZC0+ZXZlbnRIYW5kbGVyLT5zZXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lKDApOwogICAgIGVu
YWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIHVwZGF0ZSBvdXIgZ2VvbWV0
cnkuCisgICAgcGFnZVZpZXctPnNldFdpZHRoKHZpZXdwb3J0LT53aWR0aCgpKTsKKyAgICBwYWdl
Vmlldy0+c2V0SGVpZ2h0KHZpZXdwb3J0LT5oZWlnaHQoKSk7CiB9CiAKIHZvaWQgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OmluaXRpYWxpemVUb3VjaChRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKQEAg
LTMwMiw3ICszMjAsOCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV92aWV3cG9ydFRy
YWplY3RvcnlWZWN0b3JDaGFuZ2VkKGNvbnN0IFFQb2ludEYmIHRyYQogCiB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjpfcV9vblZpc2libGVDaGFuZ2VkKCkKIHsKLSAgICB3ZWJQYWdlUHJveHkt
PnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc1Zpc2libGUpOworICAgIGlm
ICh3ZWJQYWdlUHJveHkpCisgICAgICAgIHdlYlBhZ2VQcm94eS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFdlYlBhZ2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld1By
aXZhdGU6Ol9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChRV2ViRG93bmxvYWRJdGVt
KiBkb3dubG9hZEl0ZW0pCkBAIC00OTQsOCArNTEzLDEyIEBAIHZvaWQgUVF1aWNrV2ViVmlld1By
aXZhdGU6OnNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cihib29sIGVuYWJsZSkKIAog
ICAgIC8vIERvIG5vdCBndWFyZCwgdGVzdGluZyBmb3IgdGhlIHNhbWUgdmFsdWUsIGFzIHdlIGNh
bGwgdGhpcyBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4KIAotICAgIHdlYlBhZ2VQcm94eS0+c2V0VXNl
Rml4ZWRMYXlvdXQoIWVuYWJsZSk7CiAgICAgcGFnZVZpZXctPnNldFVzZXNUcmFkaXRpb25hbERl
c2t0b3BCZWhhdmlvdXIoZW5hYmxlKTsKKworICAgIGlmICghaXNJbml0aWFsaXplZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgd2ViUGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dCghZW5hYmxl
KTsKICAgICBpZiAoZW5hYmxlKQogICAgICAgICBpbml0aWFsaXplRGVza3RvcChxKTsKICAgICBl
bHNlCkBAIC01NDEsNiArNTY0LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0TmF2
aWdhdG9yUXRPYmplY3RFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBBU1NFUlQoZW5hYmxlZCAh
PSBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCk7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3
ZSBoYXZlIHRvIGtlZXAgdGhpcyBpbmZvcm1hdGlvbiBpbiBib3RoIHByb2Nlc3NlcyBhbmQgdGhl
IHNldHRpbmcgaXMgYXN5bmNocm9ub3VzLgogICAgIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVk
ID0gZW5hYmxlZDsKKwogICAgIGNvbnRleHQtPnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCh3
ZWJQYWdlUHJveHkuZ2V0KCksIGVuYWJsZWQpOwogfQogCkBAIC02NTgsNyArNjgyLDExIEBAIFFX
ZWJQcmVmZXJlbmNlcyogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6cHJlZmVyZW5jZXMoKSBj
b25zdAogewogICAgIFFRdWlja1dlYlZpZXdQcml2YXRlKiBjb25zdCBkID0gZF9wdHI7CiAgICAg
aWYgKCFkLT5wcmVmZXJlbmNlcykKLSAgICAgICAgZC0+cHJlZmVyZW5jZXMgPSBhZG9wdFB0cihR
V2ViUHJlZmVyZW5jZXNQcml2YXRlOjpjcmVhdGVQcmVmZXJlbmNlcyhkKSk7CisgICAgICAgIGQt
PnByZWZlcmVuY2VzID0gYWRvcHRQdHIoUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJl
ZmVyZW5jZXMoKSk7CisKKyAgICBpZiAoZC0+aXNJbml0aWFsaXplZCkKKyAgICAgICAgZC0+cHJl
ZmVyZW5jZXMtPmQtPnNldFdlYlZpZXdQcml2YXRlKGQpOworCiAgICAgcmV0dXJuIGQtPnByZWZl
cmVuY2VzLmdldCgpOwogfQogCkBAIC03MDgsNyArNzM2LDEwIEBAIHZvaWQgUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6c2NoZW1lRGVsZWdhdGVzX0FwcGVuZChRRGVjbGFyYXRpdmVMaXN0UHJv
cGVydHk8CiAgICAgaWYgKCF3ZWJWaWV3RXhwZXJpbWVudGFsKQogICAgICAgICByZXR1cm47CiAg
ICAgUVF1aWNrV2ViVmlld1ByaXZhdGUqIGQgPSB3ZWJWaWV3RXhwZXJpbWVudGFsLT5kX2Z1bmMo
KTsKLSAgICBkLT53ZWJQYWdlUHJveHktPnJlZ2lzdGVyQXBwbGljYXRpb25TY2hlbWUoc2NoZW1l
LT5zY2hlbWUoKSk7CisKKyAgICAvLyBGSVhNRTogdGhpcyB3aWxsIGF2b2lkIGEgc2VnZmF1bHQg
YnV0IHdpbGwgbWFrZSBjdXN0b20gc2NoZW1lIHFtbCB0ZXN0IGZhaWwKKyAgICBpZiAoZC0+d2Vi
UGFnZVByb3h5KQorICAgICAgICBkLT53ZWJQYWdlUHJveHktPnJlZ2lzdGVyQXBwbGljYXRpb25T
Y2hlbWUoc2NoZW1lLT5zY2hlbWUoKSk7CiB9CiAKIGludCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVu
dGFsOjpzY2hlbWVEZWxlZ2F0ZXNfQ291bnQoUURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlj
a1VybFNjaGVtZURlbGVnYXRlPiogcHJvcGVydHkpCkBAIC03ODAsOSArODExLDYgQEAgUVF1aWNr
V2ViVmlldzo6UVF1aWNrV2ViVmlldyhRUXVpY2tJdGVtKiBwYXJlbnQpCiAgICAgLCBkX3B0cihu
ZXcgUVF1aWNrV2ViVmlld1ByaXZhdGUodGhpcykpCiAgICAgLCBtX2V4cGVyaW1lbnRhbChuZXcg
UVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCh0aGlzKSkKIHsKLSAgICBRX0QoUVF1aWNrV2ViVmll
dyk7Ci0gICAgZC0+aW5pdGlhbGl6ZSgpOwotICAgIGQtPmluaXRpYWxpemVUb3VjaCh0aGlzKTsK
IH0KIAogUVF1aWNrV2ViVmlldzo6UVF1aWNrV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBRUXVpY2tJdGVtKiBwYXJlbnQpCkBAIC04
NDEsNiArODY5LDggQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpyZWxvYWQoKQogUVVybCBRUXVpY2tX
ZWJWaWV3Ojp1cmwoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAg
ICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBRVXJsKCk7CiAgICAgUmVm
UHRyPFdlYkZyYW1lUHJveHk+IG1haW5GcmFtZSA9IGQtPndlYlBhZ2VQcm94eS0+bWFpbkZyYW1l
KCk7CiAgICAgaWYgKCFtYWluRnJhbWUpCiAgICAgICAgIHJldHVybiBRVXJsKCk7CkBAIC04NTAs
MzAgKzg4MCw0MCBAQCBRVXJsIFFRdWlja1dlYlZpZXc6OnVybCgpIGNvbnN0CiBRVXJsIFFRdWlj
a1dlYlZpZXc6Omljb24oKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsK
KyAgICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBRVXJsKCk7CiAgICAg
cmV0dXJuIGQtPm1faWNvblVSTDsKIH0KIAogaW50IFFRdWlja1dlYlZpZXc6OmxvYWRQcm9ncmVz
cygpIGNvbnN0CiB7CiAgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIGlmICghZC0+
aXNJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGQtPnBhZ2VMb2Fk
Q2xpZW50LT5sb2FkUHJvZ3Jlc3MoKTsKIH0KIAogYm9vbCBRUXVpY2tXZWJWaWV3OjpjYW5Hb0Jh
Y2soKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAoIWQt
PmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gZC0+d2Vi
UGFnZVByb3h5LT5jYW5Hb0JhY2soKTsKIH0KIAogYm9vbCBRUXVpY2tXZWJWaWV3OjpjYW5Hb0Zv
cndhcmQoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICBpZiAo
IWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gZC0+
d2ViUGFnZVByb3h5LT5jYW5Hb0ZvcndhcmQoKTsKIH0KIAogYm9vbCBRUXVpY2tXZWJWaWV3Ojps
b2FkaW5nKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgaWYg
KCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgUmVmUHRyPFdl
YktpdDo6V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5tYWluRnJh
bWUoKTsKICAgICByZXR1cm4gbWFpbkZyYW1lICYmICEoV2ViRnJhbWVQcm94eTo6TG9hZFN0YXRl
RmluaXNoZWQgPT0gbWFpbkZyYW1lLT5sb2FkU3RhdGUoKSk7CiB9CkBAIC04ODEsNiArOTIxLDgg
QEAgYm9vbCBRUXVpY2tXZWJWaWV3Ojpsb2FkaW5nKCkgY29uc3QKIGJvb2wgUVF1aWNrV2ViVmll
dzo6Y2FuUmVsb2FkKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7Cisg
ICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgUmVm
UHRyPFdlYktpdDo6V2ViRnJhbWVQcm94eT4gbWFpbkZyYW1lID0gZC0+d2ViUGFnZVByb3h5LT5t
YWluRnJhbWUoKTsKICAgICBpZiAobWFpbkZyYW1lKQogICAgICAgICByZXR1cm4gKFdlYkZyYW1l
UHJveHk6OkxvYWRTdGF0ZUZpbmlzaGVkID09IG1haW5GcmFtZS0+bG9hZFN0YXRlKCkpOwpAQCAt
OTE0LDYgKzk1Niw4IEBAIFFSZWN0RiBRUXVpY2tXZWJWaWV3OjptYXBSZWN0RnJvbVdlYkNvbnRl
bnQoY29uc3QgUVJlY3RGJiByZWN0SW5DU1NDb29yZGluYXRlcykKIFFTdHJpbmcgUVF1aWNrV2Vi
Vmlldzo6dGl0bGUoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAg
ICBpZiAoIWQtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAg
cmV0dXJuIGQtPndlYlBhZ2VQcm94eS0+cGFnZVRpdGxlKCk7CiB9CiAKQEAgLTk2Miw3ICsxMDA2
LDEyIEBAIHZvaWQgUVF1aWNrV2ViVmlldzo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHZvaWQgUVF1
aWNrV2ViVmlldzo6Z2VvbWV0cnlDaGFuZ2VkKGNvbnN0IFFSZWN0RiYgbmV3R2VvbWV0cnksIGNv
bnN0IFFSZWN0RiYgb2xkR2VvbWV0cnkpCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOworCisg
ICAgaWYgKCFkLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKICAgICBRUXVpY2tJ
dGVtOjpnZW9tZXRyeUNoYW5nZWQobmV3R2VvbWV0cnksIG9sZEdlb21ldHJ5KTsKKwogICAgIGlm
IChuZXdHZW9tZXRyeS5zaXplKCkgIT0gb2xkR2VvbWV0cnkuc2l6ZSgpKSB7CiAgICAgICAgIGlm
IChkLT5wYWdlVmlldy0+dXNlc1RyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cigpKSB7CiAgICAg
ICAgICAgICBkLT5wYWdlVmlldy0+c2V0V2lkdGgobmV3R2VvbWV0cnkud2lkdGgoKSk7CkBAIC0x
MTE4LDQgKzExNjcsMTYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3Ojpsb2FkSHRtbChjb25zdCBRU3Ry
aW5nJiBodG1sLCBjb25zdCBRVXJsJiBiYXNlVXJsKQogICAgIGQtPndlYlBhZ2VQcm94eS0+bG9h
ZEhUTUxTdHJpbmcoaHRtbCwgYmFzZVVybC50b1N0cmluZygpKTsKIH0KIAordm9pZCBRUXVpY2tX
ZWJWaWV3Ojpjb21wb25lbnRDb21wbGV0ZSgpCit7CisgICAgUVF1aWNrSXRlbTo6Y29tcG9uZW50
Q29tcGxldGUoKTsKKworICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKKyAgICBkLT5pbml0aWFsaXpl
KCk7CisKKyAgICAvLyBJbml0aWFsaXplIHZpZXcgY29ycmVjdGx5IGFzIGRlc2t0b3Agb3IgdG91
Y2gsIGFjY29yZGluZyB0bworICAgIC8vIHRoZSBleHBlcmltZW50YWwgcHJvcGVydHkgdXNlVHJh
ZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyLgorICAgIGQtPnNldFVzZVRyYWRpdGlvbmFsRGVza3Rv
cEJlaGF2aW91cihkLT5wYWdlVmlldy0+dXNlc1RyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cigp
KTsKK30KKwogI2luY2x1ZGUgIm1vY19xcXVpY2t3ZWJ2aWV3X3AuY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKaW5kZXggMGZhMDc5
MS4uNTk1OTRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcC5oCkBAIC0xMTIsNiArMTEyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7IC8vIE9ubHkgbmVlZGVkIGJ5IFdUUi4KIAorICAg
IHZpcnR1YWwgdm9pZCBjb21wb25lbnRDb21wbGV0ZSgpOworCiBwdWJsaWMgUV9TTE9UUzoKICAg
ICB2b2lkIGxvYWQoY29uc3QgUVVybCYpOwogICAgIHZvaWQgbG9hZEh0bWwoY29uc3QgUVN0cmlu
ZyYgaHRtbCwgY29uc3QgUVVybCYgYmFzZVVybCA9IFFVcmwoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggNGJlNzE3
MC4uMDc4YzY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9x
cXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaApAQCAtMTYxLDYgKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBwYWdlSXNTdXNwZW5kZWQ7CiAgICAgYm9vbCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZDsK
ICAgICBRVXJsIG1faWNvblVSTDsKKyAgICBib29sIGlzSW5pdGlhbGl6ZWQ7CiB9OwogCiAjZW5k
aWYgLy8gcXF1aWNrd2Vidmlld19wX3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhpc3RvcnkuY3BwCmluZGV4IGZmNzdkYWUu
LjRlNTQxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdl
Ym5hdmlnYXRpb25oaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeS5jcHAKQEAgLTQzLDM2ICs0Myw0NiBAQAogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1RV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OlFX
ZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZShXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0KQot
ICAgIDogbV9iYWNrRm9yd2FyZExpc3QobGlzdCkKLSAgICAsIGluZGV4U2lnbigwKQorUVdlYk5h
dmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUo
KQorICAgIDogaW5kZXhTaWduKDApCiB7CiB9CiAKLVFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsKiBR
V2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbChX
S0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0KQorUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIFFXZWJO
YXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKCkKIHsK
ICAgICBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCogbW9kZWwgPSBuZXcgUVdlYk5hdmlnYXRpb25M
aXN0TW9kZWwoKTsKLSAgICBtb2RlbC0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFBy
aXZhdGUobGlzdCk7CisgICAgbW9kZWwtPmQgPSBuZXcgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQ
cml2YXRlKCk7CiAgICAgcmV0dXJuIG1vZGVsOwogfQogCit2b2lkIFFXZWJOYXZpZ2F0aW9uTGlz
dE1vZGVsUHJpdmF0ZTo6c2V0QmFja0ZvcndhcmRMaXN0KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxp
c3QpCit7CisgICAgbV9iYWNrRm9yd2FyZExpc3QgPSBsaXN0OworfQorCitRV2ViTmF2aWdhdGlv
bkhpc3RvcnlQcml2YXRlOjpRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKCkKK3sKKyAgICBt
X2JhY2tOYXZpZ2F0aW9uTW9kZWwgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFBy
aXZhdGU6OmNyZWF0ZVdlYk5hdmlnYXRpb25Nb2RlbCgpKTsKKyAgICBtX2ZvcndhcmROYXZpZ2F0
aW9uTW9kZWwgPSBhZG9wdFB0cihRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGU6OmNyZWF0
ZVdlYk5hdmlnYXRpb25Nb2RlbCgpKTsKK30KIAotUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0
ZTo6UVdlYk5hdmlnYXRpb25IaXN0b3J5UHJpdmF0ZShXS1BhZ2VSZWYgcGFnZSkKLSAgICA6IG1f
cGFnZShwYWdlKQotICAgICwgbV9iYWNrRm9yd2FyZExpc3QoV0tQYWdlR2V0QmFja0ZvcndhcmRM
aXN0KHBhZ2UpKQotICAgICwgbV9iYWNrTmF2aWdhdGlvbk1vZGVsKGFkb3B0UHRyKFFXZWJOYXZp
Z2F0aW9uTGlzdE1vZGVsUHJpdmF0ZTo6Y3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKG1fYmFja0Zv
cndhcmRMaXN0LmdldCgpKSkpCi0gICAgLCBtX2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwoYWRvcHRQ
dHIoUVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlOjpjcmVhdGVXZWJOYXZpZ2F0aW9uTW9k
ZWwobV9iYWNrRm9yd2FyZExpc3QuZ2V0KCkpKSkKK3ZvaWQgUVdlYk5hdmlnYXRpb25IaXN0b3J5
UHJpdmF0ZTo6c2V0UGFnZShXS1BhZ2VSZWYgcGFnZSkKIHsKKyAgICBtX3BhZ2UgPSBwYWdlOwor
ICAgIG1fYmFja0ZvcndhcmRMaXN0ID0gV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KHBhZ2UpOwor
ICAgIG1fYmFja05hdmlnYXRpb25Nb2RlbC0+ZC0+c2V0QmFja0ZvcndhcmRMaXN0KG1fYmFja0Zv
cndhcmRMaXN0LmdldCgpKTsKKyAgICBtX2ZvcndhcmROYXZpZ2F0aW9uTW9kZWwtPmQtPnNldEJh
Y2tGb3J3YXJkTGlzdChtX2JhY2tGb3J3YXJkTGlzdC5nZXQoKSk7CisKICAgICBtX2JhY2tOYXZp
Z2F0aW9uTW9kZWwtPmQtPmNvdW50ID0gJldLQmFja0ZvcndhcmRMaXN0R2V0QmFja0xpc3RDb3Vu
dDsKICAgICBtX2JhY2tOYXZpZ2F0aW9uTW9kZWwtPmQtPmluZGV4U2lnbiA9IC0xOwogICAgIG1f
Zm9yd2FyZE5hdmlnYXRpb25Nb2RlbC0+ZC0+Y291bnQgPSAmV0tCYWNrRm9yd2FyZExpc3RHZXRG
b3J3YXJkTGlzdENvdW50OwogICAgIG1fZm9yd2FyZE5hdmlnYXRpb25Nb2RlbC0+ZC0+aW5kZXhT
aWduID0gMTsKIH0KIAotUVdlYk5hdmlnYXRpb25IaXN0b3J5KiBRV2ViTmF2aWdhdGlvbkhpc3Rv
cnlQcml2YXRlOjpjcmVhdGVIaXN0b3J5KFdLUGFnZVJlZiBwYWdlKQorUVdlYk5hdmlnYXRpb25I
aXN0b3J5KiBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlOjpjcmVhdGVIaXN0b3J5KCkKIHsK
ICAgICBRV2ViTmF2aWdhdGlvbkhpc3RvcnkqIGhpc3RvcnkgPSBuZXcgUVdlYk5hdmlnYXRpb25I
aXN0b3J5KCk7Ci0gICAgaGlzdG9yeS0+ZCA9IG5ldyBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2
YXRlKHBhZ2UpOworICAgIGhpc3RvcnktPmQgPSBuZXcgUVdlYk5hdmlnYXRpb25IaXN0b3J5UHJp
dmF0ZSgpOwogICAgIHJldHVybiBoaXN0b3J5OwogfQogCkBAIC0xMTIsNiArMTIyLDggQEAgUVdl
Yk5hdmlnYXRpb25MaXN0TW9kZWw6On5RV2ViTmF2aWdhdGlvbkxpc3RNb2RlbCgpCiAKIGludCBR
V2ViTmF2aWdhdGlvbkxpc3RNb2RlbDo6cm93Q291bnQoY29uc3QgUU1vZGVsSW5kZXgmKSBjb25z
dAogeworICAgIGlmKCFkLT5tX2JhY2tGb3J3YXJkTGlzdCkKKyAgICAgICAgcmV0dXJuIDA7CiAg
ICAgcmV0dXJuIGQtPmNvdW50KGQtPm1fYmFja0ZvcndhcmRMaXN0LmdldCgpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VibmF2aWdhdGlvbmhp
c3RvcnlfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0
aW9uaGlzdG9yeV9wX3AuaAppbmRleCBjOGNjNWFiLi5mOWJiMGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9yeV9wX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJuYXZpZ2F0aW9uaGlzdG9y
eV9wX3AuaApAQCAtNDMsOSArNDMsMTAgQEAgY2xhc3MgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWw7
CiAKIGNsYXNzIFFXZWJOYXZpZ2F0aW9uTGlzdE1vZGVsUHJpdmF0ZSB7CiBwdWJsaWM6Ci0gICAg
UVdlYk5hdmlnYXRpb25MaXN0TW9kZWxQcml2YXRlKFdLQmFja0ZvcndhcmRMaXN0UmVmKTsKKyAg
ICBRV2ViTmF2aWdhdGlvbkxpc3RNb2RlbFByaXZhdGUoKTsKIAotICAgIHN0YXRpYyBRV2ViTmF2
aWdhdGlvbkxpc3RNb2RlbCogY3JlYXRlV2ViTmF2aWdhdGlvbk1vZGVsKFdLQmFja0ZvcndhcmRM
aXN0UmVmKTsKKyAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25MaXN0TW9kZWwqIGNyZWF0ZVdlYk5h
dmlnYXRpb25Nb2RlbCgpOworICAgIHZvaWQgc2V0QmFja0ZvcndhcmRMaXN0KFdLQmFja0Zvcndh
cmRMaXN0UmVmKTsKIAogICAgIHVuc2lnbmVkICgqY291bnQpKFdLQmFja0ZvcndhcmRMaXN0UmVm
KTsKICAgICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gbV9iYWNrRm9yd2FyZExp
c3Q7CkBAIC01NCw5ICs1NSwxMCBAQCBwdWJsaWM6CiAKIGNsYXNzIFFXZWJOYXZpZ2F0aW9uSGlz
dG9yeVByaXZhdGUgewogcHVibGljOgotICAgIHN0YXRpYyBRV2ViTmF2aWdhdGlvbkhpc3Rvcnkq
IGNyZWF0ZUhpc3RvcnkoV0tQYWdlUmVmKTsKKyAgICBzdGF0aWMgUVdlYk5hdmlnYXRpb25IaXN0
b3J5KiBjcmVhdGVIaXN0b3J5KCk7CisgICAgdm9pZCBzZXRQYWdlKFdLUGFnZVJlZik7CiAKLSAg
ICBRV2ViTmF2aWdhdGlvbkhpc3RvcnlQcml2YXRlKFdLUGFnZVJlZik7CisgICAgUVdlYk5hdmln
YXRpb25IaXN0b3J5UHJpdmF0ZSgpOwogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIGdvQmFj
a1RvKGludCBpbmRleCk7CiAgICAgdm9pZCBnb0ZvcndhcmRUbyhpbnQgaW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDcxYzExYWYuLmMzMzY3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlcy5jcHAKQEAgLTI4LDEzICsyOCwzMiBAQAogI2luY2x1
ZGUgInFxdWlja3dlYnZpZXdfcF9wLmgiCiAjaW5jbHVkZSAicXdlYnByZWZlcmVuY2VzX3BfcC5o
IgogCi1RV2ViUHJlZmVyZW5jZXMqIFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OmNyZWF0ZVByZWZl
cmVuY2VzKFFRdWlja1dlYlZpZXdQcml2YXRlKiB3ZWJWaWV3UHJpdmF0ZSkKK1FXZWJQcmVmZXJl
bmNlc1ByaXZhdGU6OlFXZWJQcmVmZXJlbmNlc1ByaXZhdGUoKQorICAgIDogd2ViVmlld1ByaXZh
dGUoMCkKKyAgICAsIGluaXRpYWxRdE9iamVjdEVuYWJsZWQoZmFsc2UpCit7Cit9CisKK1FXZWJQ
cmVmZXJlbmNlcyogUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6Y3JlYXRlUHJlZmVyZW5jZXMoKQog
ewogICAgIFFXZWJQcmVmZXJlbmNlcyogcHJlZnMgPSBuZXcgUVdlYlByZWZlcmVuY2VzOwotICAg
IHByZWZzLT5kLT53ZWJWaWV3UHJpdmF0ZSA9IHdlYlZpZXdQcml2YXRlOwogICAgIHJldHVybiBw
cmVmczsKIH0KIAordm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRXZWJWaWV3UHJpdmF0
ZShRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlldykKK3sKKyAgICB3ZWJWaWV3UHJpdmF0ZSA9
IHdlYlZpZXc7CisKKyAgICBRTWFwPFFXZWJQcmVmZXJlbmNlc1ByaXZhdGU6OldlYkF0dHJpYnV0
ZSwgYm9vbD46OmNvbnN0X2l0ZXJhdG9yIGkgPSBpbml0aWFsUHJlZmVyZW5jZXMuY29uc3RCZWdp
bigpOworICAgIHdoaWxlIChpICE9IGluaXRpYWxQcmVmZXJlbmNlcy5jb25zdEVuZCgpKSB7Cisg
ICAgICAgIHNldEF0dHJpYnV0ZShpLmtleSgpLCBpLnZhbHVlKCkpOworICAgICAgICArK2k7Cisg
ICAgfQorCisgICAgaWYgKGluaXRpYWxRdE9iamVjdEVuYWJsZWQpCisgICAgICAgIHdlYlZpZXdQ
cml2YXRlLT5zZXROYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQoaW5pdGlhbFF0T2JqZWN0RW5hYmxl
ZCk7Cit9CisKIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZTo6dGVzdEF0dHJpYnV0ZShRV2Vi
UHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUgYXR0cikgY29uc3QKIHsKICAgICBzd2l0
Y2ggKGF0dHIpIHsKQEAgLTYyLDYgKzgxLDExIEBAIGJvb2wgUVdlYlByZWZlcmVuY2VzUHJpdmF0
ZTo6dGVzdEF0dHJpYnV0ZShRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpXZWJBdHRyaWJ1dGUKIAog
dm9pZCBRV2ViUHJlZmVyZW5jZXNQcml2YXRlOjpzZXRBdHRyaWJ1dGUoUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6V2ViQXR0cmlidXRlIGF0dHIsIGJvb2wgZW5hYmxlKQogeworICAgIGlmICghd2Vi
Vmlld1ByaXZhdGUpIHsKKyAgICAgICAgaW5pdGlhbFByZWZlcmVuY2VzLmluc2VydChhdHRyLCBl
bmFibGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc3dpdGNoIChhdHRyKSB7CiAg
ICAgY2FzZSBBdXRvTG9hZEltYWdlczoKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShwcmVmZXJlbmNlc1JlZigpLCBlbmFibGUpOwpAQCAtMjgyLDYgKzMw
Niw4IEBAIHZvaWQgUVdlYlByZWZlcmVuY2VzOjpzZXREbnNQcmVmZXRjaEVuYWJsZWQoYm9vbCBl
bmFibGUpCiAKIGJvb2wgUVdlYlByZWZlcmVuY2VzOjpuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQo
KSBjb25zdAogeworICAgIGlmICghZC0+d2ViVmlld1ByaXZhdGUpCisgICAgICAgIHJldHVybiBk
LT5pbml0aWFsUXRPYmplY3RFbmFibGVkOwogICAgIHJldHVybiBkLT53ZWJWaWV3UHJpdmF0ZS0+
bmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKCk7CiB9CiAKQEAgLTI4OSw2ICszMTUsMTIgQEAgdm9p
ZCBRV2ViUHJlZmVyZW5jZXM6OnNldE5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChib29sIGVuYWJs
ZSkKIHsKICAgICBpZiAoZW5hYmxlID09IG5hdmlnYXRvclF0T2JqZWN0RW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIWQtPndlYlZpZXdQcml2YXRlKSB7CisgICAgICAgIGQt
PmluaXRpYWxRdE9iamVjdEVuYWJsZWQgPSBlbmFibGU7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBkLT53ZWJWaWV3UHJpdmF0ZS0+c2V0TmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGVu
YWJsZSk7CiAgICAgZW1pdCBuYXZpZ2F0b3JRdE9iamVjdEVuYWJsZWRDaGFuZ2VkKCk7CiB9CkBA
IC0zOTQsNiArNDI2LDcgQEAgdm9pZCBRV2ViUHJlZmVyZW5jZXM6OnNldERlZmF1bHRGaXhlZEZv
bnRTaXplKHVuc2lnbmVkIHNpemUpCiAKIFdLUHJlZmVyZW5jZXNSZWYgUVdlYlByZWZlcmVuY2Vz
UHJpdmF0ZTo6cHJlZmVyZW5jZXNSZWYoKSBjb25zdAogeworICAgIEFTU0VSVCh3ZWJWaWV3UHJp
dmF0ZSk7CiAgICAgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmID0gdG9BUEkod2ViVmlld1By
aXZhdGUtPndlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCkpOwogICAgIHJldHVybiBXS1BhZ2VHcm91
cEdldFByZWZlcmVuY2VzKHBhZ2VHcm91cFJlZik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJwcmVmZXJlbmNlc19wLmgKaW5kZXggMjlkZjA0Yy4uZjgz
MjQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2VicHJl
ZmVyZW5jZXNfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnBy
ZWZlcmVuY2VzX3AuaApAQCAtMTM2LDYgKzEzNiw4IEBAIHByaXZhdGU6CiAgICAgUVdlYlByZWZl
cmVuY2VzUHJpdmF0ZSAqZDsKIAogICAgIGZyaWVuZCBjbGFzcyBRV2ViUHJlZmVyZW5jZXNQcml2
YXRlOworICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTsKKyAgICBmcmllbmQg
Y2xhc3MgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDsKIH07CiAKICNlbmRpZiAvLyBxd2VicHJl
ZmVyZW5jZXNfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJwcmVmZXJlbmNlc19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdlYnByZWZlcmVuY2VzX3BfcC5oCmluZGV4IGY0ZWYxM2MuLmFmYjAwNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnByZWZlcmVuY2VzX3BfcC5o
CkBAIC01NCw3ICs1NCw4IEBAIHB1YmxpYzoKICAgICAgICAgRGVmYXVsdEZpeGVkRm9udFNpemUK
ICAgICB9OwogCi0gICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlcyogY3JlYXRlUHJlZmVyZW5jZXMo
UVF1aWNrV2ViVmlld1ByaXZhdGUqKTsKKyAgICBRV2ViUHJlZmVyZW5jZXNQcml2YXRlKCk7Cisg
ICAgc3RhdGljIFFXZWJQcmVmZXJlbmNlcyogY3JlYXRlUHJlZmVyZW5jZXMoKTsKIAogICAgIHZv
aWQgc2V0QXR0cmlidXRlKFdlYkF0dHJpYnV0ZSBhdHRyLCBib29sIGVuYWJsZSk7CiAgICAgYm9v
bCB0ZXN0QXR0cmlidXRlKFdlYkF0dHJpYnV0ZSBhdHRyKSBjb25zdDsKQEAgLTcwLDYgKzcxLDEx
IEBAIHB1YmxpYzoKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGU7CiAK
ICAgICBzdGF0aWMgUVdlYlByZWZlcmVuY2VzUHJpdmF0ZSogZ2V0KFFXZWJQcmVmZXJlbmNlcyop
OworCisgICAgdm9pZCBzZXRXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3UHJpdmF0ZSopOwor
CisgICAgUU1hcDxXZWJBdHRyaWJ1dGUsIGJvb2w+IGluaXRpYWxQcmVmZXJlbmNlczsKKyAgICBi
b29sIGluaXRpYWxRdE9iamVjdEVuYWJsZWQ7CiB9OwogCiAjZW5kaWYgLy8gcXdlYnByZWZlcmVu
Y2VzX3BfcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3
ZWJ2aWV3cG9ydGluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2Vi
dmlld3BvcnRpbmZvLmNwcAppbmRleCA3MzUxOTZmLi42ZTI4ZjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJ2aWV3cG9ydGluZm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYnZpZXdwb3J0aW5mby5jcHAKQEAgLTM4
LDExICszOCwxNiBAQCBRV2ViVmlld3BvcnRJbmZvOjp+UVdlYlZpZXdwb3J0SW5mbygpCiAKIFFT
aXplIFFXZWJWaWV3cG9ydEluZm86OmNvbnRlbnRzU2l6ZSgpIGNvbnN0CiB7CisgICAgaWYgKCFt
X3dlYlZpZXdQcml2YXRlLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gUVNpemUoKTsK
ICAgICByZXR1cm4gUVNpemUobV93ZWJWaWV3UHJpdmF0ZS0+cGFnZVZpZXctPmNvbnRlbnRTaXpl
KCkudG9TaXplKCkpOwogfQogCiBRVmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjpjdXJyZW50U2Nh
bGUoKSBjb25zdAogeworICAgIGlmICghbV93ZWJWaWV3UHJpdmF0ZS0+aXNJbml0aWFsaXplZCkK
KyAgICAgICAgcmV0dXJuIDE7CisKICAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmludGVyYWN0
aW9uRW5naW5lKQogICAgICAgICByZXR1cm4gUVZhcmlhbnQoKTsKIApAQCAtNTEsNiArNTYsOSBA
QCBRVmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjpjdXJyZW50U2NhbGUoKSBjb25zdAogCiBRVmFy
aWFudCBRV2ViVmlld3BvcnRJbmZvOjpkZXZpY2VQaXhlbFJhdGlvKCkgY29uc3QKIHsKKyAgICBp
ZiAoIW1fd2ViVmlld1ByaXZhdGUtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiAxOwor
CiAgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pbnRlcmFjdGlvbkVuZ2luZSkKICAgICAgICAg
cmV0dXJuIFFWYXJpYW50KCk7CiAKQEAgLTU5LDYgKzY3LDkgQEAgUVZhcmlhbnQgUVdlYlZpZXdw
b3J0SW5mbzo6ZGV2aWNlUGl4ZWxSYXRpbygpIGNvbnN0CiAKIFFWYXJpYW50IFFXZWJWaWV3cG9y
dEluZm86OmluaXRpYWxTY2FsZSgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRl
LT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gMTsKKwogICAgIGlmICghbV93ZWJWaWV3
UHJpdmF0ZS0+aW50ZXJhY3Rpb25FbmdpbmUpCiAgICAgICAgIHJldHVybiBRVmFyaWFudCgpOwog
CkBAIC02Nyw2ICs3OCw5IEBAIFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86OmluaXRpYWxTY2Fs
ZSgpIGNvbnN0CiAKIFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86Om1pbmltdW1TY2FsZSgpIGNv
bnN0CiB7CisgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pc0luaXRpYWxpemVkKQorICAgICAg
ICByZXR1cm4gMTsKKwogICAgIGlmICghbV93ZWJWaWV3UHJpdmF0ZS0+aW50ZXJhY3Rpb25Fbmdp
bmUpCiAgICAgICAgIHJldHVybiBRVmFyaWFudCgpOwogCkBAIC03NSw2ICs4OSw5IEBAIFFWYXJp
YW50IFFXZWJWaWV3cG9ydEluZm86Om1pbmltdW1TY2FsZSgpIGNvbnN0CiAKIFFWYXJpYW50IFFX
ZWJWaWV3cG9ydEluZm86Om1heGltdW1TY2FsZSgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3dlYlZp
ZXdQcml2YXRlLT5pc0luaXRpYWxpemVkKQorICAgICAgICByZXR1cm4gMTsKKwogICAgIGlmICgh
bV93ZWJWaWV3UHJpdmF0ZS0+aW50ZXJhY3Rpb25FbmdpbmUpCiAgICAgICAgIHJldHVybiBRVmFy
aWFudCgpOwogCkBAIC04Myw2ICsxMDAsOSBAQCBRVmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjpt
YXhpbXVtU2NhbGUoKSBjb25zdAogCiBRVmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjppc1NjYWxh
YmxlKCkgY29uc3QKIHsKKyAgICBpZiAoIW1fd2ViVmlld1ByaXZhdGUtPmlzSW5pdGlhbGl6ZWQp
CisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pbnRl
cmFjdGlvbkVuZ2luZSkKICAgICAgICAgcmV0dXJuIFFWYXJpYW50KCk7CiAKQEAgLTkxLDYgKzEx
MSw5IEBAIFFWYXJpYW50IFFXZWJWaWV3cG9ydEluZm86OmlzU2NhbGFibGUoKSBjb25zdAogCiBR
VmFyaWFudCBRV2ViVmlld3BvcnRJbmZvOjpsYXlvdXRTaXplKCkgY29uc3QKIHsKKyAgICBpZiAo
IW1fd2ViVmlld1ByaXZhdGUtPmlzSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBRU2l6ZSgp
OworCiAgICAgaWYgKCFtX3dlYlZpZXdQcml2YXRlLT5pbnRlcmFjdGlvbkVuZ2luZSkKICAgICAg
ICAgcmV0dXJuIFFWYXJpYW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuY3BwCmluZGV4IDU3Yjk1M2YuLjYwYzUw
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNj
ZXNzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdv
cmtBY2Nlc3NNYW5hZ2VyLmNwcApAQCAtNzYsNyArNzYsOSBAQCBRTmV0d29ya1JlcGx5KiBRdE5l
dHdvcmtBY2Nlc3NNYW5hZ2VyOjpjcmVhdGVSZXF1ZXN0KE9wZXJhdGlvbiBvcGVyYXRpb24sIGNv
bnN0CiAKIHZvaWQgUXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6cmVnaXN0ZXJBcHBsaWNhdGlvblNj
aGVtZShjb25zdCBXZWJQYWdlKiBwYWdlLCBjb25zdCBRU3RyaW5nJiBzY2hlbWUpCiB7Ci0gICAg
bV9hcHBsaWNhdGlvblNjaGVtZXMuaW5zZXJ0KHBhZ2UsIHNjaGVtZS50b0xvd2VyKCkpOworICAg
IGNvbnN0IFFTdHJpbmcgc2NoZW1lTG93ZXIgPSBzY2hlbWUudG9Mb3dlcigpOworICAgIGlmICgh
bV9hcHBsaWNhdGlvblNjaGVtZXMuY29udGFpbnMocGFnZSwgc2NoZW1lTG93ZXIpKQorICAgICAg
ICBtX2FwcGxpY2F0aW9uU2NoZW1lcy5pbnNlcnQocGFnZSwgc2NoZW1lTG93ZXIpOwogfQogCiB9
Ci0tIAoxLjcuOC4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>