<?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>137376</bug_id>
          
          <creation_ts>2014-10-02 18:33:57 -0700</creation_ts>
          <short_desc>Defer resolution of viewport size</short_desc>
          <delta_ts>2014-10-07 13:52:35 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039089</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-02 18:33:57 -0700</bug_when>
    <thetext>Defer resolution of viewport size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039350</commentid>
    <comment_count>1</comment_count>
      <attachid>239238</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-03 14:33:24 -0700</bug_when>
    <thetext>Created attachment 239238
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039380</commentid>
    <comment_count>2</comment_count>
      <attachid>239238</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-10-03 15:45:17 -0700</bug_when>
    <thetext>Comment on attachment 239238
patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

Definitely needs more justification here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039605</commentid>
    <comment_count>3</comment_count>
      <attachid>239301</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-05 15:26:46 -0700</bug_when>
    <thetext>Created attachment 239301
simplify patch, add description to ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039607</commentid>
    <comment_count>4</comment_count>
      <attachid>239301</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-05 15:47:14 -0700</bug_when>
    <thetext>Comment on attachment 239301
simplify patch, add description to ChangeLog

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

I believe this is incomplete. There can be no use of m_configuration.width/height without resolving it to a real value.

&gt; Source/WebCore/page/ViewportConfiguration.cpp:293
&gt; +double ViewportConfiguration::configLength(double length) const

Avoid abbreviations in WebKit.

&gt; Source/WebCore/page/ViewportConfiguration.cpp:298
&gt; +    if (length == ViewportArguments::ValueDeviceWidth)
&gt; +        return activeMinimumLayoutSizeInScrollViewCoordinates().width();
&gt; +    if (length == ViewportArguments::ValueDeviceHeight)
&gt; +        return activeMinimumLayoutSizeInScrollViewCoordinates().height();

This is fragile.

I would just have 2 getters that resolve the configuration to a real value, for width and height.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039928</commentid>
    <comment_count>5</comment_count>
      <attachid>239379</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-06 20:18:27 -0700</bug_when>
    <thetext>Created attachment 239379
resolve on configuration update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039929</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-06 20:21:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 239301 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239301&amp;action=review
&gt; 
&gt; I believe this is incomplete. There can be no use of m_configuration.width/height without resolving it to a real value.

I&apos;ve refactored it in my new patch to apply when the configuration is changed.

&gt; &gt; Source/WebCore/page/ViewportConfiguration.cpp:293
&gt; &gt; +double ViewportConfiguration::configLength(double length) const
&gt; 
&gt; Avoid abbreviations in WebKit.

Renamed.
 
&gt; &gt; Source/WebCore/page/ViewportConfiguration.cpp:298
&gt; &gt; +    if (length == ViewportArguments::ValueDeviceWidth)
&gt; &gt; +        return activeMinimumLayoutSizeInScrollViewCoordinates().width();
&gt; &gt; +    if (length == ViewportArguments::ValueDeviceHeight)
&gt; &gt; +        return activeMinimumLayoutSizeInScrollViewCoordinates().height();
&gt; 
&gt; This is fragile.
&gt; 
&gt; I would just have 2 getters that resolve the configuration to a real value, for width and height.

Based on our discussion and the fact that we can set width or height to be device-width or device-height, this logic seems correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040111</commentid>
    <comment_count>7</comment_count>
      <attachid>239379</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-07 13:24:06 -0700</bug_when>
    <thetext>Comment on attachment 239379
resolve on configuration update

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040127</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-10-07 13:52:35 -0700</bug_when>
    <thetext>Committed r174405: &lt;http://trac.webkit.org/changeset/174405&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239238</attachid>
            <date>2014-10-03 14:33:24 -0700</date>
            <delta_ts>2014-10-05 15:26:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>defer.01.diff</filename>
            <type>text/plain</type>
            <size>21684</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MGY1MzZhLi44NWZlMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTQtMTAtMDMgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IERlZmVyIHJlc29sdXRpb24gb2Ygdmlld3BvcnQgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzM3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzVmll
d3BvcnQpOgorICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bGF5b3V0U2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OmluaXRpYWxTY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246Om1pbmltdW1TY2FsZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb25maWdMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25m
aWd1cmF0aW9uOjpsYXlvdXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZp
Z3VyYXRpb246OmxheW91dEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZp
Z3VyYXRpb246OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5oOgorCiAyMDE0LTEwLTAzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDYxN2E3YmEuLjMzYmM0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xODYyLDkg
KzE4NjIsOSBAQCBfX1pOSzdXZWJDb3JlMjFOZXR3b3JrU3RvcmFnZVNlc3Npb24xM2Nvb2tpZVN0
b3JhZ2VFdgogX19aTks3V2ViQ29yZTIxUmVuZGVyTGF5ZXJDb21wb3NpdG9yMTFzY3JvbGxMYXll
ckV2CiBfX1pOSzdXZWJDb3JlMjFSZW5kZXJMYXllckNvbXBvc2l0b3IxNXJvb3RSZW5kZXJMYXll
ckV2CiBfX1pOSzdXZWJDb3JlMjFVc2VyQ29udGVudFVSTFBhdHRlcm43bWF0Y2hlc0VSS05TXzNV
UkxFCi1fX1pOSzdXZWJDb3JlMjFWaWV3cG9ydENvbmZpZ3VyYXRpb24xMGxheW91dFNpemVFdgot
X19aTks3V2ViQ29yZTIxVmlld3BvcnRDb25maWd1cmF0aW9uMTJpbml0aWFsU2NhbGVFdgotX19a
Tks3V2ViQ29yZTIxVmlld3BvcnRDb25maWd1cmF0aW9uMTJtaW5pbXVtU2NhbGVFdgorX19aTks3
V2ViQ29yZTIxVmlld3BvcnRDb25maWd1cmF0aW9uMTBsYXlvdXRTaXplRVJLTlNfOUZsb2F0U2l6
ZUUKK19fWk5LN1dlYkNvcmUyMVZpZXdwb3J0Q29uZmlndXJhdGlvbjEyaW5pdGlhbFNjYWxlRVJL
TlNfOUZsb2F0U2l6ZUUKK19fWk5LN1dlYkNvcmUyMVZpZXdwb3J0Q29uZmlndXJhdGlvbjEybWlu
aW11bVNjYWxlRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk5LN1dlYkNvcmUyMVZpZXdwb3J0Q29uZmln
dXJhdGlvbjQ2YWN0aXZlTWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlc0V2
CiBfX1pOSzdXZWJDb3JlMjJXaGVlbEV2ZW50RGVsdGFUcmFja2VyMzBkb21pbmFudFNjcm9sbEdl
c3R1cmVEaXJlY3Rpb25FdgogX19aTks3V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ux
MW1heGltdW1TaXplRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGVjODRkZGMuLjRiYWE1
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjk5OSwxNSArMjk5OSw2IEBAIHZvaWQg
RG9jdW1lbnQ6OnByb2Nlc3NWaWV3cG9ydChjb25zdCBTdHJpbmcmIGZlYXR1cmVzLCBWaWV3cG9y
dEFyZ3VtZW50czo6VHlwZSBvCiAgICAgbV92aWV3cG9ydEFyZ3VtZW50cyA9IFZpZXdwb3J0QXJn
dW1lbnRzKG9yaWdpbik7CiAgICAgcHJvY2Vzc0FyZ3VtZW50cyhmZWF0dXJlcywgKHZvaWQqKSZt
X3ZpZXdwb3J0QXJndW1lbnRzLCAmc2V0Vmlld3BvcnRGZWF0dXJlKTsKIAotI2lmIFBMQVRGT1JN
KElPUykKLSAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzg5NTU5NTk+IEludmVzdGlnYXRl
IG1vdmluZyB0byBUb1QgV2ViS2l0J3MgZXh0ZW5kZWQgVmlld3BvcnQgSW1wbGVtZW50YXRpb24K
LSAgICAvLyBNb3ZpbmcgdG8gVG9UJ3MgaW1wbGVtZW50YXRpb24gd291bGQgbWVhbiBjYWxsaW5n
IGZpbmRDb25maWd1cmF0aW9uRm9yVmlld3BvcnREYXRhLCB3aGljaCBkb2VzCi0gICAgLy8gYm91
bmRzIGNoZWNraW5nIGFuZCBkZXRlcm1pbmluZyBjb25jcmV0ZSB2YWx1ZXMgZm9yIFZhbHVlQXV0
byB3aGljaCB3ZSBhbHJlYWR5IGRvIGluIFVJS2l0LgotICAgIC8vIFRvIG1haW50YWluIG9sZCBi
ZWhhdmlvciwgd2UganVzdCBuZWVkIHRvIHVwZGF0ZSBhIGZldyB2YWx1ZXMsIGxlYXZpbmcgQXV0
bydzIGZvciBVSUtpdC4KLSAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAgICAg
ICAgZmluYWxpemVWaWV3cG9ydEFyZ3VtZW50cyhtX3ZpZXdwb3J0QXJndW1lbnRzLCBwYWdlLT5j
aHJvbWUoKS5zY3JlZW5TaXplKCkpOwotI2VuZGlmCi0KICAgICB1cGRhdGVWaWV3cG9ydEFyZ3Vt
ZW50cygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29u
ZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5jcHAKaW5kZXggYTkzNDAwNi4uNmM2ZWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Vmlld3BvcnRDb25maWd1cmF0aW9uLmNwcApAQCAtMTE5LDEyICsxMTksMTIgQEAgdm9pZCBWaWV3
cG9ydENvbmZpZ3VyYXRpb246OmRpZEZpbmlzaERvY3VtZW50TG9hZCgpCiAgICAgbV9wYWdlRGlk
RmluaXNoRG9jdW1lbnRMb2FkID0gdHJ1ZTsKIH0KIAotSW50U2l6ZSBWaWV3cG9ydENvbmZpZ3Vy
YXRpb246OmxheW91dFNpemUoKSBjb25zdAorSW50U2l6ZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246
OmxheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplKSBjb25zdAogewotICAgIHJldHVybiBJ
bnRTaXplKGxheW91dFdpZHRoKCksIGxheW91dEhlaWdodCgpKTsKKyAgICByZXR1cm4gSW50U2l6
ZShsYXlvdXRXaWR0aChzaXplKSwgbGF5b3V0SGVpZ2h0KHNpemUpKTsKIH0KIAotZG91YmxlIFZp
ZXdwb3J0Q29uZmlndXJhdGlvbjo6aW5pdGlhbFNjYWxlKCkgY29uc3QKK2RvdWJsZSBWaWV3cG9y
dENvbmZpZ3VyYXRpb246OmluaXRpYWxTY2FsZShjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFjb25zdHJhaW50c0FyZUFsbFJlbGF0aXZlKG1fY29uZmlndXJhdGlv
bikpOwogCkBAIC0xMzYsMjMgKzEzNiwyMyBAQCBkb3VibGUgVmlld3BvcnRDb25maWd1cmF0aW9u
Ojppbml0aWFsU2NhbGUoKSBjb25zdAogICAgIC8vIElmIG5vdCwgaXQgaXMgdXAgdG8gdXMgdG8g
ZGV0ZXJtaW5lIHRoZSBpbml0aWFsIHNjYWxlLgogICAgIC8vIFdlIHdhbnQgYSBzY2FsZSBzbWFs
bCBlbm91Z2ggdG8gZml0IHRoZSBkb2N1bWVudCB3aWR0aC13aXNlLgogICAgIGNvbnN0IEZsb2F0
U2l6ZSYgbWluaW11bUxheW91dFNpemUgPSBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzKCk7Ci0gICAgZG91YmxlIHdpZHRoID0gbV9jb250ZW50U2l6ZS53aWR0
aCgpID4gMCA/IG1fY29udGVudFNpemUud2lkdGgoKSA6IGxheW91dFdpZHRoKCk7CisgICAgZG91
YmxlIHdpZHRoID0gbV9jb250ZW50U2l6ZS53aWR0aCgpID4gMCA/IG1fY29udGVudFNpemUud2lk
dGgoKSA6IGxheW91dFdpZHRoKHNpemUpOwogICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgPSAwOwog
ICAgIGlmICh3aWR0aCA+IDApCiAgICAgICAgIGluaXRpYWxTY2FsZSA9IG1pbmltdW1MYXlvdXRT
aXplLndpZHRoKCkgLyB3aWR0aDsKIAogICAgIC8vIFByZXZlbnQgdGhlIGludGlhbCBzY2FsZSBm
cm9tIHNocmlua2luZyB0byBhIGhlaWdodCBzbWFsbGVyIHRoYW4gb3VyIHZpZXcncyBtaW5pbXVt
IGhlaWdodC4KLSAgICBkb3VibGUgaGVpZ2h0ID0gbV9jb250ZW50U2l6ZS5oZWlnaHQoKSA+IDAg
PyBtX2NvbnRlbnRTaXplLmhlaWdodCgpIDogbGF5b3V0SGVpZ2h0KCk7CisgICAgZG91YmxlIGhl
aWdodCA9IG1fY29udGVudFNpemUuaGVpZ2h0KCkgPiAwID8gbV9jb250ZW50U2l6ZS5oZWlnaHQo
KSA6IGxheW91dEhlaWdodChzaXplKTsKICAgICBpZiAoaGVpZ2h0ID4gMCAmJiBoZWlnaHQgKiBp
bml0aWFsU2NhbGUgPCBtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSkKICAgICAgICAgaW5pdGlh
bFNjYWxlID0gbWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgLyBoZWlnaHQ7CiAgICAgcmV0dXJu
IHN0ZDo6bWluKHN0ZDo6bWF4KGluaXRpYWxTY2FsZSwgbV9jb25maWd1cmF0aW9uLm1pbmltdW1T
Y2FsZSksIG1fY29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUpOwogfQogCi1kb3VibGUgVmlld3Bv
cnRDb25maWd1cmF0aW9uOjptaW5pbXVtU2NhbGUoKSBjb25zdAorZG91YmxlIFZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6bWluaW11bVNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgY29uc3QKIHsK
ICAgICAvLyBJZiB3ZSBzY2FsZSB0byBmaXQsIHRoZW4gdGhpcyBpcyBvdXIgbWluaW11bSBzY2Fs
ZSBhcyB3ZWxsLgogICAgIGlmICghbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlzU2V0KQot
ICAgICAgICByZXR1cm4gaW5pdGlhbFNjYWxlKCk7CisgICAgICAgIHJldHVybiBpbml0aWFsU2Nh
bGUoc2l6ZSk7CiAKICAgICAvLyBJZiBub3QsIHdlIHN0aWxsIG5lZWQgdG8gc2FuaXR5IGNoZWNr
IG91ciB2YWx1ZS4KICAgICBkb3VibGUgbWluaW11bVNjYWxlID0gbV9jb25maWd1cmF0aW9uLm1p
bmltdW1TY2FsZTsKQEAgLTI5MCw3ICsyOTAsMTYgQEAgdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQogI2VuZGlmCiB9CiAKLWludCBWaWV3cG9ydENvbmZp
Z3VyYXRpb246OmxheW91dFdpZHRoKCkgY29uc3QKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGNvbmZp
Z0xlbmd0aChkb3VibGUgbGVuZ3RoLCBjb25zdCBGbG9hdFNpemUmIHNpemUpCit7CisgICAgaWYg
KGxlbmd0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aCkKKyAgICAgICAg
cmV0dXJuIHNpemUud2lkdGgoKTsKKyAgICBpZiAobGVuZ3RoID09IFZpZXdwb3J0QXJndW1lbnRz
OjpWYWx1ZURldmljZUhlaWdodCkKKyAgICAgICAgcmV0dXJuIHNpemUuaGVpZ2h0KCk7CisgICAg
cmV0dXJuIGxlbmd0aDsKK30KKworaW50IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bGF5b3V0V2lk
dGgoY29uc3QgRmxvYXRTaXplJiBzaXplKSBjb25zdAogewogICAgIEFTU0VSVCghY29uc3RyYWlu
dHNBcmVBbGxSZWxhdGl2ZShtX2NvbmZpZ3VyYXRpb24pKTsKIApAQCAtMzA1LDcgKzMxNCw3IEBA
IGludCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFdpZHRoKCkgY29uc3QKICAgICAgICAg
ICAgICAgICAvLyBzYXRpc2Z5aW5nIHRoZSBjb25zdHJhaW50IG1heGltdW1TY2FsZS4KICAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8g
bWF4aW11bVNjYWxlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdGQ6OnJv
dW5kKG1fY29uZmlndXJhdGlvbi53aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpyb3Vu
ZChjb25maWdMZW5ndGgobV9jb25maWd1cmF0aW9uLndpZHRoLCBzaXplKSk7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBJZiBub3QsIG1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgd2lkdGggYW5kIGlu
aXRpYWwgc2NhbGUgY2FuIGNvLWV4aXN0LgpAQCAtMzE0LDcgKzMyMyw3IEBAIGludCBWaWV3cG9y
dENvbmZpZ3VyYXRpb246OmxheW91dFdpZHRoKCkgY29uc3QKICAgICAgICAgICAgIC8vIFRoZSBz
cGVjaWZpZWQgd2lkdGggZG9lcyBub3QgZml0IGluIHZpZXdwb3J0LiBSZXR1cm4gdGhlIG1pbmlt
dW0gd2lkdGggdGhhdCBzYXRpc2Z5IHRoZSBpbml0aWFsU2NhbGUgY29uc3RyYWludC4KICAgICAg
ICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBtX2Nv
bmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gc3Rk
Ojpyb3VuZChtX2NvbmZpZ3VyYXRpb24ud2lkdGgpOworICAgICAgICByZXR1cm4gc3RkOjpyb3Vu
ZChjb25maWdMZW5ndGgobV9jb25maWd1cmF0aW9uLndpZHRoLCBzaXplKSk7CiAgICAgfQogCiAg
ICAgLy8gSWYgdGhlIHBhZ2UgaGFzIGEgcmVhbCBzY2FsZSwgdGhlbiBqdXN0IHJldHVybiB0aGUg
bWluaW11bSBzaXplIG92ZXIgdGhlIGluaXRpYWwgc2NhbGUuCkBAIC0zMjIsMTEgKzMzMSwxMSBA
QCBpbnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0CiAgICAgICAg
IHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgLyBtX2NvbmZpZ3Vy
YXRpb24uaW5pdGlhbFNjYWxlKTsKIAogICAgIGlmIChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQo
KSA+IDApCi0gICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLndpZHRo
KCkgKiBsYXlvdXRIZWlnaHQoKSAvIG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpKTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUud2lkdGgoKSAqIGxheW91dEhl
aWdodChzaXplKSAvIG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpKTsKICAgICByZXR1cm4gbWlu
aW11bUxheW91dFNpemUud2lkdGgoKTsKIH0KIAotaW50IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6
bGF5b3V0SGVpZ2h0KCkgY29uc3QKK2ludCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dEhl
aWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFjb25zdHJh
aW50c0FyZUFsbFJlbGF0aXZlKG1fY29uZmlndXJhdGlvbikpOwogCkBAIC0zNDEsNyArMzUwLDcg
QEAgaW50IFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bGF5b3V0SGVpZ2h0KCkgY29uc3QKICAgICAg
ICAgICAgICAgICAvLyBzYXRpc2Z5IHRoZSBjb25zdHJhaW50IG1heGltdW1TY2FsZS4KICAgICAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAv
IG1heGltdW1TY2FsZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpy
b3VuZChtX2NvbmZpZ3VyYXRpb24uaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnJv
dW5kKGNvbmZpZ0xlbmd0aChtX2NvbmZpZ3VyYXRpb24uaGVpZ2h0LCBzaXplKSk7CiAgICAgICAg
IH0KIAogICAgICAgICAvLyBJZiBub3QsIG1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgd2lkdGggYW5k
IGluaXRpYWwgc2NhbGUgY2FuIGNvLWV4aXN0LgpAQCAtMzUwLDcgKzM1OSw3IEBAIGludCBWaWV3
cG9ydENvbmZpZ3VyYXRpb246OmxheW91dEhlaWdodCgpIGNvbnN0CiAgICAgICAgICAgICAvLyBU
aGUgc3BlY2lmaWVkIHdpZHRoIGRvZXMgbm90IGZpdCBpbiB2aWV3cG9ydC4gUmV0dXJuIHRoZSBt
aW5pbXVtIGhlaWdodCB0aGF0IHNhdGlzZnkgdGhlIGluaXRpYWxTY2FsZSBjb25zdHJhaW50Lgog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkg
LyBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlKTsKICAgICAgICAgfQotICAgICAgICByZXR1
cm4gc3RkOjpyb3VuZChtX2NvbmZpZ3VyYXRpb24uaGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6cm91bmQoY29uZmlnTGVuZ3RoKG1fY29uZmlndXJhdGlvbi5oZWlnaHQsIHNpemUpKTsKICAg
ICB9CiAKICAgICAvLyBJZiB0aGUgcGFnZSBoYXMgYSByZWFsIHNjYWxlLCB0aGVuIGp1c3QgcmV0
dXJuIHRoZSBtaW5pbXVtIHNpemUgb3ZlciB0aGUgaW5pdGlhbCBzY2FsZS4KQEAgLTM1OCw3ICsz
NjcsNyBAQCBpbnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRIZWlnaHQoKSBjb25zdAog
ICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAvIG1f
Y29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOwogCiAgICAgaWYgKG1pbmltdW1MYXlvdXRTaXpl
LndpZHRoKCkgPiAwKQotICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6
ZS5oZWlnaHQoKSAqIGxheW91dFdpZHRoKCkgLyBtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpKTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgKiBs
YXlvdXRXaWR0aChzaXplKSAvIG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkpOwogICAgIHJldHVy
biBtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKTsKIH0KIApAQCAtNDU0LDYgKzQ2Myw3IEBAIFZp
ZXdwb3J0Q29uZmlndXJhdGlvblRleHRTdHJlYW0mIFZpZXdwb3J0Q29uZmlndXJhdGlvblRleHRT
dHJlYW06Om9wZXJhdG9yPDwoY29uCiBDU3RyaW5nIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6ZGVz
Y3JpcHRpb24oKSBjb25zdAogewogICAgIFZpZXdwb3J0Q29uZmlndXJhdGlvblRleHRTdHJlYW0g
dHM7CisgICAgRmxvYXRTaXplIHNpemUoVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lk
dGgsIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZUhlaWdodCk7CiAKICAgICB0cyA8PCAi
KHZpZXdwb3J0LWNvbmZpZ3VyYXRpb24gIiA8PCAodm9pZCopdGhpczsKICAgICB0cyA8PCAiXG4i
OwpAQCAtNDg4LDExICs0OTgsMTEgQEAgQ1N0cmluZyBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmRl
c2NyaXB0aW9uKCkgY29uc3QKICAgICB0cyA8PCAiXG4iOwogICAgIHRzLmluY3JlYXNlSW5kZW50
KCk7CiAgICAgdHMud3JpdGVJbmRlbnQoKTsKLSAgICB0cyA8PCAiKGNvbXB1dGVkIGluaXRpYWwg
c2NhbGUgIiA8PCBpbml0aWFsU2NhbGUoKSA8PCAiKVxuIjsKKyAgICB0cyA8PCAiKGNvbXB1dGVk
IGluaXRpYWwgc2NhbGUgIiA8PCBpbml0aWFsU2NhbGUoc2l6ZSkgPDwgIilcbiI7CiAgICAgdHMu
d3JpdGVJbmRlbnQoKTsKLSAgICB0cyA8PCAiKGNvbXB1dGVkIG1pbmltdW0gc2NhbGUgIiA8PCBt
aW5pbXVtU2NhbGUoKSA8PCAiKVxuIjsKKyAgICB0cyA8PCAiKGNvbXB1dGVkIG1pbmltdW0gc2Nh
bGUgIiA8PCBtaW5pbXVtU2NhbGUoc2l6ZSkgPDwgIilcbiI7CiAgICAgdHMud3JpdGVJbmRlbnQo
KTsKLSAgICB0cyA8PCAiKGNvbXB1dGVkIGxheW91dCBzaXplICIgPDwgbGF5b3V0U2l6ZSgpIDw8
ICIpIjsKKyAgICB0cyA8PCAiKGNvbXB1dGVkIGxheW91dCBzaXplICIgPDwgbGF5b3V0U2l6ZShz
aXplKSA8PCAiKSI7CiAgICAgdHMuZGVjcmVhc2VJbmRlbnQoKTsKIAogICAgIHRzIDw8ICIpXG4i
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKaW5kZXggNjMy
ZDJiNC4uMzI4NjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5oCkBAIC04NSw5ICs4NSw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlc2V0TWluaW1hbFVJKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaW5pc2hEb2N1
bWVudExvYWQoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIEludFNpemUgbGF5b3V0U2l6ZSgpIGNv
bnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBpbml0aWFsU2NhbGUoKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgbWluaW11bVNjYWxlKCkgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgSW50U2l6ZSBsYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBpbml0aWFsU2NhbGUoY29uc3QgRmxvYXRTaXplJikgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIG1pbmltdW1TY2FsZShjb25zdCBGbG9hdFNp
emUmKSBjb25zdDsKICAgICBkb3VibGUgbWF4aW11bVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9j
b25maWd1cmF0aW9uLm1heGltdW1TY2FsZTsgfQogICAgIGJvb2wgYWxsb3dzVXNlclNjYWxpbmco
KSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dzVXNlclNjYWxpbmc7IH0KICAg
ICBib29sIHVzZXNNaW5pbWFsVUkoKSBjb25zdCB7IHJldHVybiBtX3VzZXNNaW5pbWFsVUk7IH0K
QEAgLTEwNSw4ICsxMDUsOCBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlQ29uZmlndXJhdGlvbigpOwotICAgIGludCBsYXlvdXRXaWR0aCgpIGNvbnN0OwotICAgIGlu
dCBsYXlvdXRIZWlnaHQoKSBjb25zdDsKKyAgICBpbnQgbGF5b3V0V2lkdGgoY29uc3QgRmxvYXRT
aXplJikgY29uc3Q7CisgICAgaW50IGxheW91dEhlaWdodChjb25zdCBGbG9hdFNpemUmKSBjb25z
dDsKIAogICAgIFBhcmFtZXRlcnMgbV9jb25maWd1cmF0aW9uOwogICAgIFBhcmFtZXRlcnMgbV9k
ZWZhdWx0Q29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1ZTA1MmFiLi4zZjBlNGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMTAtMDMgIE1hcnRpbiBIb2NrICA8bWhvY2tA
YXBwbGUuY29tPgorCisgICAgICAgIERlZmVyIHJlc29sdXRpb24gb2Ygdmlld3BvcnQgc2l6ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzM3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aWxs
Q29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OnNjYWxlQWZ0ZXJWaWV3cG9ydFdpZHRoQ2hhbmdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6Om1pbmltdW1QYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKToKKwogMjAx
NC0xMC0wMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtHVEtdIFVSVEJGIGFmdGVyIHIxNzQyMzEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggOTZhMzk3Zi4uY2FiNTNlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjg2NCw3ICsyODY0
LDcgQEAgdm9pZCBXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJiBsYXllclRyYW5zYWN0aW9uKQogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKGNvcmVQYWdlKCktPnBhZ2VFeHRlbmRlZEJhY2tncm91
bmRDb2xvcigpKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRT
Y2FsZVdhc1NldEJ5VUlQcm9jZXNzKHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSk7Ci0gICAgbGF5
ZXJUcmFuc2FjdGlvbi5zZXRNaW5pbXVtU2NhbGVGYWN0b3IobV92aWV3cG9ydENvbmZpZ3VyYXRp
b24ubWluaW11bVNjYWxlKCkpOworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWluaW11bVNjYWxl
RmFjdG9yKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZShtX3NjcmVlblNpemUp
KTsKICAgICBsYXllclRyYW5zYWN0aW9uLnNldE1heGltdW1TY2FsZUZhY3RvcihtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSk7CiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRB
bGxvd3NVc2VyU2NhbGluZyhhbGxvd3NVc2VyU2NhbGluZygpKTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDk3MjkxY2UuLmEwMWJkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTE2NiwyMCArMTY2LDIwIEBAIHZvaWQgV2Vi
UGFnZTo6c2F2ZVBhZ2VTdGF0ZShIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAgaGlzdG9y
eUl0ZW0uc2V0Q29udGVudFNpemUobV92aWV3cG9ydENvbmZpZ3VyYXRpb24uY29udGVudHNTaXpl
KCkpOwogfQogCi1zdGF0aWMgZG91YmxlIHNjYWxlQWZ0ZXJWaWV3cG9ydFdpZHRoQ2hhbmdlKGRv
dWJsZSBjdXJyZW50U2NhbGUsIGJvb2wgdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IsIGNv
bnN0IFZpZXdwb3J0Q29uZmlndXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uLCBmbG9hdCB1
bm9ic2N1cmVkV2lkdGhJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgSW50U2l6ZSYgbmV3
Q29udGVudFNpemUsIGNvbnN0IEludFNpemUmIG9sZENvbnRlbnRTaXplLCBmbG9hdCB2aXNpYmxl
SG9yaXpvbnRhbEZyYWN0aW9uKQorc3RhdGljIGRvdWJsZSBzY2FsZUFmdGVyVmlld3BvcnRXaWR0
aENoYW5nZShkb3VibGUgY3VycmVudFNjYWxlLCBib29sIHVzZXJIYXNDaGFuZ2VkUGFnZVNjYWxl
RmFjdG9yLCBjb25zdCBWaWV3cG9ydENvbmZpZ3VyYXRpb24mIHZpZXdwb3J0Q29uZmlndXJhdGlv
biwgZmxvYXQgdW5vYnNjdXJlZFdpZHRoSW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IElu
dFNpemUmIG5ld0NvbnRlbnRTaXplLCBjb25zdCBJbnRTaXplJiBvbGRDb250ZW50U2l6ZSwgZmxv
YXQgdmlzaWJsZUhvcml6b250YWxGcmFjdGlvbiwgRmxvYXRTaXplIHNpemUpCiB7CiAgICAgZG91
YmxlIHNjYWxlOwogICAgIGlmICghdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IpCi0gICAg
ICAgIHNjYWxlID0gdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZSgpOworICAgICAg
ICBzY2FsZSA9IHZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoc2l6ZSk7CiAgICAg
ZWxzZQotICAgICAgICBzY2FsZSA9IHN0ZDo6bWF4KHN0ZDo6bWluKGN1cnJlbnRTY2FsZSwgdmll
d3BvcnRDb25maWd1cmF0aW9uLm1heGltdW1TY2FsZSgpKSwgdmlld3BvcnRDb25maWd1cmF0aW9u
Lm1pbmltdW1TY2FsZSgpKTsKKyAgICAgICAgc2NhbGUgPSBzdGQ6Om1heChzdGQ6Om1pbihjdXJy
ZW50U2NhbGUsIHZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSksIHZpZXdwb3J0
Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoc2l6ZSkpOwogCiAgICAgaWYgKHVzZXJIYXNDaGFu
Z2VkUGFnZVNjYWxlRmFjdG9yKSB7CiAgICAgICAgIC8vIFdoZW4gdGhlIGNvbnRlbnQgc2l6ZSBj
aGFuZ2VzLCB3ZSBrZWVwIHRoZSBzYW1lIHJlbGF0aXZlIGhvcml6b250YWwgY29udGVudCB3aWR0
aCBpbiB2aWV3LCBvdGhlcndpc2Ugd2Ugd291bGQKICAgICAgICAgLy8gZW5kIHVwIHpvb21lZCB0
b28gZmFyIGluIGxhbmRzY2FwZS0+cG9ydHJhaXQsIGFuZCB0b28gY2xvc2UgaW4gcG9ydHJhaXQt
PmxhbmRzY2FwZS4KICAgICAgICAgZG91YmxlIHdpZHRoVG9LZWVwSW5WaWV3ID0gdmlzaWJsZUhv
cml6b250YWxGcmFjdGlvbiAqIG5ld0NvbnRlbnRTaXplLndpZHRoKCk7CiAgICAgICAgIGRvdWJs
ZSBuZXdTY2FsZSA9IHVub2JzY3VyZWRXaWR0aEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIC8gd2lk
dGhUb0tlZXBJblZpZXc7Ci0gICAgICAgIHNjYWxlID0gc3RkOjptYXgoc3RkOjptaW4obmV3U2Nh
bGUsIHZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSksIHZpZXdwb3J0Q29uZmln
dXJhdGlvbi5taW5pbXVtU2NhbGUoKSk7CisgICAgICAgIHNjYWxlID0gc3RkOjptYXgoc3RkOjpt
aW4obmV3U2NhbGUsIHZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSksIHZpZXdw
b3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoc2l6ZSkpOwogICAgIH0KICAgICByZXR1cm4g
c2NhbGU7CiB9CkBAIC0yMTEsNiArMjExLDggQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlUGFnZVN0
YXRlKGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKICAgICBpZiAoIWhpc3RvcnlJdGVt
LnBhZ2VTY2FsZUZhY3RvcigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBjb25zdCBGbG9hdFNp
emUgc2l6ZSA9IHNjcmVlblNpemUoKTsKKwogICAgIC8vIFdlIGNhbiByZXN0b3JlIHRoZSBleHBv
c2VkIHJlY3QgYW5kIHNjYWxlLCBidXQgd2UgY2Fubm90IHRvdWNoIHRoZSBzY3JvbGwgcG9zaXRp
b24gc2luY2UgdGhlIG9ic2N1cmVkIGluc2V0cwogICAgIC8vIG1heSBiZSBjaGFuZ2luZyBpbiB0
aGUgVUlQcm9jZXNzLiBUaGUgVUlQcm9jZXNzIGNhbiB1cGRhdGUgdGhlIHBvc2l0aW9uIGZyb20g
dGhlIGluZm9ybWF0aW9uIHdlIHNlbmQgYW5kIHdpbGwgdGhlbgogICAgIC8vIHNjcm9sbCB0byB0
aGUgY29ycmVjdCBwb3NpdGlvbiB0aHJvdWdoIGEgcmVndWxhciBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGUuCkBAIC0yMTksNyArMjIxLDcgQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlUGFnZVN0YXRl
KGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKIAogICAgIEZsb2F0U2l6ZSBjdXJyZW50
TWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9IG1fdmlld3BvcnRDb25m
aWd1cmF0aW9uLmFjdGl2ZU1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMo
KTsKICAgICBpZiAoaGlzdG9yeUl0ZW0ubWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29y
ZGluYXRlcygpID09IGN1cnJlbnRNaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzKSB7Ci0gICAgICAgIGZsb2F0IGJvdW5kZWRTY2FsZSA9IHN0ZDo6bWluPGZsb2F0PihtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSwgc3RkOjptYXg8ZmxvYXQ+KG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgpLCBoaXN0b3J5SXRlbS5wYWdlU2NhbGVG
YWN0b3IoKSkpOworICAgICAgICBmbG9hdCBib3VuZGVkU2NhbGUgPSBzdGQ6Om1pbjxmbG9hdD4o
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxlKCksIHN0ZDo6bWF4PGZsb2F0Piht
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoc2l6ZSksIGhpc3RvcnlJdGVtLnBh
Z2VTY2FsZUZhY3RvcigpKSk7CiAgICAgICAgIHNjYWxlUGFnZShib3VuZGVkU2NhbGUsIEludFBv
aW50KCkpOwogCiAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRDb250ZW50UmVjdCho
aXN0b3J5SXRlbS5leHBvc2VkQ29udGVudFJlY3QoKSk7CkBAIC0yMzEsNyArMjMzLDcgQEAgdm9p
ZCBXZWJQYWdlOjpyZXN0b3JlUGFnZVN0YXRlKGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRl
bSkKICAgICAgICAgSW50U2l6ZSBuZXdDb250ZW50U2l6ZSA9IGZyYW1lVmlldy5jb250ZW50c1Np
emUoKTsKICAgICAgICAgZG91YmxlIHZpc2libGVIb3Jpem9udGFsRnJhY3Rpb24gPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oaGlzdG9yeUl0ZW0udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkud2lkdGgoKSkg
LyBvbGRDb250ZW50U2l6ZS53aWR0aCgpOwogCi0gICAgICAgIGRvdWJsZSBuZXdTY2FsZSA9IHNj
YWxlQWZ0ZXJWaWV3cG9ydFdpZHRoQ2hhbmdlKGhpc3RvcnlJdGVtLnBhZ2VTY2FsZUZhY3Rvcigp
LCAhaGlzdG9yeUl0ZW0uc2NhbGVJc0luaXRpYWwoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24s
IGN1cnJlbnRNaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLndpZHRoKCks
IG5ld0NvbnRlbnRTaXplLCBvbGRDb250ZW50U2l6ZSwgdmlzaWJsZUhvcml6b250YWxGcmFjdGlv
bik7CisgICAgICAgIGRvdWJsZSBuZXdTY2FsZSA9IHNjYWxlQWZ0ZXJWaWV3cG9ydFdpZHRoQ2hh
bmdlKGhpc3RvcnlJdGVtLnBhZ2VTY2FsZUZhY3RvcigpLCAhaGlzdG9yeUl0ZW0uc2NhbGVJc0lu
aXRpYWwoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24sIGN1cnJlbnRNaW5pbXVtTGF5b3V0U2l6
ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLndpZHRoKCksIG5ld0NvbnRlbnRTaXplLCBvbGRDb250
ZW50U2l6ZSwgdmlzaWJsZUhvcml6b250YWxGcmFjdGlvbiwgc2l6ZSk7CiAKICAgICAgICAgRmxv
YXRQb2ludCBuZXdDZW50ZXI7CiAgICAgICAgIGlmICghb2xkQ29udGVudFNpemUuaXNFbXB0eSgp
ICYmICFuZXdDb250ZW50U2l6ZS5pc0VtcHR5KCkgJiYgbmV3Q29udGVudFNpemUgIT0gb2xkQ29u
dGVudFNpemUpCkBAIC0yNTgsNyArMjYwLDggQEAgZG91YmxlIFdlYlBhZ2U6Om1pbmltdW1QYWdl
U2NhbGVGYWN0b3IoKSBjb25zdAogewogICAgIGlmICghbV92aWV3cG9ydENvbmZpZ3VyYXRpb24u
YWxsb3dzVXNlclNjYWxpbmcoKSkKICAgICAgICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxlRmFj
dG9yKCk7Ci0gICAgcmV0dXJuIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgp
OworICAgIGNvbnN0IEZsb2F0U2l6ZSBzaXplID0gc2NyZWVuU2l6ZSgpOworICAgIHJldHVybiBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoc2l6ZSk7CiB9CiAKIGRvdWJsZSBX
ZWJQYWdlOjptYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QKQEAgLTIyNjUsNyArMjI2OCw4
IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNp
emUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zCiAgICAgcmVzZXRUZXh0QXV0b3NpemluZ0JlZm9y
ZUxheW91dElmTmVlZGVkKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1MYXlvdXRTaXpl
Rm9yTWluaW1hbFVJKCksIG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJKTsKICAgICBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRNaW5pbXVtTGF5b3V0U2l6ZShtaW5pbXVtTGF5b3V0U2l6
ZSk7CiAgICAgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0TWluaW11bUxheW91dFNpemVGb3JN
aW5pbWFsVUkobWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkpOwotICAgIEludFNpemUgbmV3
TGF5b3V0U2l6ZSA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmxheW91dFNpemUoKTsKKyAgICBj
b25zdCBGbG9hdFNpemUgc2l6ZSA9IHNjcmVlblNpemUoKTsKKyAgICBJbnRTaXplIG5ld0xheW91
dFNpemUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5sYXlvdXRTaXplKHNpemUpOwogCiAgICAg
c2V0Rml4ZWRMYXlvdXRTaXplKG5ld0xheW91dFNpemUpOwogICAgIHNldE1heGltdW1Vbm9ic2N1
cmVkU2l6ZShtYXhpbXVtVW5vYnNjdXJlZFNpemUpOwpAQCAtMjI3NCw3ICsyMjc4LDcgQEAgdm9p
ZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWlu
aW11bUxheW91dFNpemUsIGNvbnMKIAogICAgIEludFNpemUgbmV3Q29udGVudFNpemUgPSBmcmFt
ZVZpZXcuY29udGVudHNTaXplKCk7CiAKLSAgICBkb3VibGUgc2NhbGUgPSBzY2FsZUFmdGVyVmll
d3BvcnRXaWR0aENoYW5nZSh0YXJnZXRTY2FsZSwgbV91c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZh
Y3RvciwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24sIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXMud2lkdGgoKSwgbmV3Q29udGVudFNpemUsIG9sZENvbnRlbnRTaXpl
LCB2aXNpYmxlSG9yaXpvbnRhbEZyYWN0aW9uKTsKKyAgICBkb3VibGUgc2NhbGUgPSBzY2FsZUFm
dGVyVmlld3BvcnRXaWR0aENoYW5nZSh0YXJnZXRTY2FsZSwgbV91c2VySGFzQ2hhbmdlZFBhZ2VT
Y2FsZUZhY3RvciwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24sIHRhcmdldFVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMud2lkdGgoKSwgbmV3Q29udGVudFNpemUsIG9sZENvbnRl
bnRTaXplLCB2aXNpYmxlSG9yaXpvbnRhbEZyYWN0aW9uLCBzaXplKTsKICAgICBGbG9hdFJlY3Qg
bmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0ID0gdGFyZ2V0VW5vYnNjdXJlZFJlY3Q7CiAgICAgRmxv
YXRSZWN0IG5ld0V4cG9zZWRDb250ZW50UmVjdCA9IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdDsK
IApAQCAtMjQyMiwxNiArMjQyNiwxNyBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0Vmlld3BvcnREZWZh
dWx0Q29uZmlndXJhdGlvbihXZWJGcmFtZSogZnJhbWUpCiAKIHZvaWQgV2ViUGFnZTo6dmlld3Bv
cnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpCiB7Ci0gICAgc2V0Rml4ZWRMYXlvdXRTaXplKG1fdmll
d3BvcnRDb25maWd1cmF0aW9uLmxheW91dFNpemUoKSk7CisgICAgY29uc3QgRmxvYXRTaXplIHNp
emUgPSBzY3JlZW5TaXplKCk7CisgICAgc2V0Rml4ZWRMYXlvdXRTaXplKG1fdmlld3BvcnRDb25m
aWd1cmF0aW9uLmxheW91dFNpemUoc2l6ZSkpOwogCi0gICAgZG91YmxlIGluaXRpYWxTY2FsZSA9
IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZSgpOworICAgIGRvdWJsZSBpbml0
aWFsU2NhbGUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoc2l6ZSk7CiAg
ICAgZG91YmxlIHNjYWxlOwogICAgIGlmIChtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9y
KQotICAgICAgICBzY2FsZSA9IHN0ZDo6bWF4KHN0ZDo6bWluKHBhZ2VTY2FsZUZhY3RvcigpLCBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVtU2NhbGUoKSksIG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLm1pbmltdW1TY2FsZSgpKTsKKyAgICAgICAgc2NhbGUgPSBzdGQ6Om1heChzdGQ6Om1p
bihwYWdlU2NhbGVGYWN0b3IoKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxl
KCkpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUoc2l6ZSkpOwogICAgIGVs
c2UKICAgICAgICAgc2NhbGUgPSBpbml0aWFsU2NhbGU7CiAKLSAgICBtX3BhZ2UtPnNldFpvb21l
ZE91dFBhZ2VTY2FsZUZhY3RvcihtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUo
KSk7CisgICAgbV9wYWdlLT5zZXRab29tZWRPdXRQYWdlU2NhbGVGYWN0b3IobV92aWV3cG9ydENv
bmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKHNpemUpKTsKIAogICAgIHVwZGF0ZVZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKTsKIApAQCAtMjQ2MSwxMSArMjQ2NiwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKQogdm9pZCBXZWJQYWdlOjp1cGRh
dGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkKIHsKICAgICBGbG9hdFNpemUgbGFy
Z2VzdFVub2JzY3VyZWRSZWN0ID0gbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CisgICAgY29uc3Qg
RmxvYXRTaXplIHNpemUgPSBzY3JlZW5TaXplKCk7CiAgICAgaWYgKGxhcmdlc3RVbm9ic2N1cmVk
UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIGxhcmdlc3RVbm9ic2N1cmVkUmVjdCA9IG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uLm1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJKCk7CiAKICAgICBG
cmFtZVZpZXcmIGZyYW1lVmlldyA9ICptYWluRnJhbWVWaWV3KCk7Ci0gICAgbGFyZ2VzdFVub2Jz
Y3VyZWRSZWN0LnNjYWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUo
KSk7CisgICAgbGFyZ2VzdFVub2JzY3VyZWRSZWN0LnNjYWxlKDEgLyBtX3ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5pbml0aWFsU2NhbGUoc2l6ZSkpOwogICAgIGZyYW1lVmlldy5zZXRWaWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzKHJvdW5kZWRJbnRTaXplKGxhcmdlc3RVbm9ic2N1cmVkUmVj
dCkpOwogfQogCkBAIC0yNTIxLDcgKzI1MjcsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2li
bGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQog
ICAgICAgICBmaWx0ZXJlZFNjYWxlID0gY3VycmVudFNjYWxlOwogICAgIH0KIAotICAgIGRvdWJs
ZSBib3VuZGVkU2NhbGUgPSBzdGQ6Om1pbihtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5tYXhpbXVt
U2NhbGUoKSwgc3RkOjptYXgobV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKCks
IGZpbHRlcmVkU2NhbGUpKTsKKyAgICBjb25zdCBGbG9hdFNpemUgc2l6ZSA9IHNjcmVlblNpemUo
KTsKKyAgICBkb3VibGUgYm91bmRlZFNjYWxlID0gc3RkOjptaW4obV92aWV3cG9ydENvbmZpZ3Vy
YXRpb24ubWF4aW11bVNjYWxlKCksIHN0ZDo6bWF4KG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1p
bmltdW1TY2FsZShzaXplKSwgZmlsdGVyZWRTY2FsZSkpOwogCiAgICAgLy8gU2tpcCBwcm9ncmVz
c2l2ZWx5IHJlZHJhd2luZyB0aWxlcyBpZiBwaW5jaC16b29taW5nIHdoaWxlIHRoZSBzeXN0ZW0g
aXMgdW5kZXIgbWVtb3J5IHByZXNzdXJlLgogICAgIGlmIChib3VuZGVkU2NhbGUgIT0gY3VycmVu
dFNjYWxlICYmICFtX2lzSW5TdGFibGVTdGF0ZSAmJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5p
c1VuZGVyTWVtb3J5UHJlc3N1cmUoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239301</attachid>
            <date>2014-10-05 15:26:46 -0700</date>
            <delta_ts>2014-10-06 20:18:27 -0700</delta_ts>
            <desc>simplify patch, add description to ChangeLog</desc>
            <filename>defer.02.diff</filename>
            <type>text/plain</type>
            <size>5167</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYTZiMzIwLi4wNjk3ZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMTAtMDUgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IERlZmVyIHJlc29sdXRpb24gb2Ygdmlld3BvcnQgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzM3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZpZXdwb3J0Q29uZmlndXJhdGlvbiBzaG91bGQg
cmVzb2x2ZSB0aGUgdmlld3BvcnQgc2l6ZSB3aGVuIHF1ZXJpZWQKKyAgICAgICAgYmFzZWQgb24g
dGhlIGFjdGl2ZSBtaW5pbXVtIGxheW91dCBzaXplLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzVmlld3BvcnQpOiBEZWZl
ciByZXNvbHV0aW9uIG9mIHZpZXdwb3J0IHNpemUuCisgICAgICAgICogcGFnZS9WaWV3cG9ydENv
bmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9u
Ojpjb25maWdMZW5ndGgpOiBSZXNvbHZlcyB3aWR0aCBvciBoZWlnaHQgYmFzZWQgb24gdmlld3Bv
cnQgYXJndW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjps
YXlvdXRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246Omxh
eW91dEhlaWdodCk6CisgICAgICAgICogcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaDoKKwog
MjAxNC0xMC0wNSAgTG9yZW56byBUaWx2ZSAgPGx0aWx2ZUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdIEZpeCBidWlsZCB3aGVuIERSQUdfU1VQUE9SVCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZTM5ZmMzYS4uNmU5M2UzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0yOTk5LDE1ICsyOTk5LDYgQEAgdm9pZCBEb2N1bWVudDo6cHJvY2Vzc1ZpZXdwb3J0
KGNvbnN0IFN0cmluZyYgZmVhdHVyZXMsIFZpZXdwb3J0QXJndW1lbnRzOjpUeXBlIG8KICAgICBt
X3ZpZXdwb3J0QXJndW1lbnRzID0gVmlld3BvcnRBcmd1bWVudHMob3JpZ2luKTsKICAgICBwcm9j
ZXNzQXJndW1lbnRzKGZlYXR1cmVzLCAodm9pZCopJm1fdmlld3BvcnRBcmd1bWVudHMsICZzZXRW
aWV3cG9ydEZlYXR1cmUpOwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIEZJWE1FOiA8cmRh
cjovL3Byb2JsZW0vODk1NTk1OT4gSW52ZXN0aWdhdGUgbW92aW5nIHRvIFRvVCBXZWJLaXQncyBl
eHRlbmRlZCBWaWV3cG9ydCBJbXBsZW1lbnRhdGlvbgotICAgIC8vIE1vdmluZyB0byBUb1QncyBp
bXBsZW1lbnRhdGlvbiB3b3VsZCBtZWFuIGNhbGxpbmcgZmluZENvbmZpZ3VyYXRpb25Gb3JWaWV3
cG9ydERhdGEsIHdoaWNoIGRvZXMKLSAgICAvLyBib3VuZHMgY2hlY2tpbmcgYW5kIGRldGVybWlu
aW5nIGNvbmNyZXRlIHZhbHVlcyBmb3IgVmFsdWVBdXRvIHdoaWNoIHdlIGFscmVhZHkgZG8gaW4g
VUlLaXQuCi0gICAgLy8gVG8gbWFpbnRhaW4gb2xkIGJlaGF2aW9yLCB3ZSBqdXN0IG5lZWQgdG8g
dXBkYXRlIGEgZmV3IHZhbHVlcywgbGVhdmluZyBBdXRvJ3MgZm9yIFVJS2l0LgotICAgIGlmIChQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAgICAgICBmaW5hbGl6ZVZpZXdwb3J0QXJndW1l
bnRzKG1fdmlld3BvcnRBcmd1bWVudHMsIHBhZ2UtPmNocm9tZSgpLnNjcmVlblNpemUoKSk7Ci0j
ZW5kaWYKLQogICAgIHVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcAppbmRleCBhOTM0MDA2Li5iMzE0
ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3Bw
CkBAIC0yOTAsNiArMjkwLDE1IEBAIHZvaWQgVmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVD
b25maWd1cmF0aW9uKCkKICNlbmRpZgogfQogCitkb3VibGUgVmlld3BvcnRDb25maWd1cmF0aW9u
Ojpjb25maWdMZW5ndGgoZG91YmxlIGxlbmd0aCkgY29uc3QKK3sKKyAgICBpZiAobGVuZ3RoID09
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoKQorICAgICAgICByZXR1cm4gYWN0
aXZlTWluaW11bUxheW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlcygpLndpZHRoKCk7Cisg
ICAgaWYgKGxlbmd0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQpCisg
ICAgICAgIHJldHVybiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzKCkuaGVpZ2h0KCk7CisgICAgcmV0dXJuIGxlbmd0aDsKK30KKwogaW50IFZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6bGF5b3V0V2lkdGgoKSBjb25zdAogewogICAgIEFTU0VSVCghY29uc3RyYWlu
dHNBcmVBbGxSZWxhdGl2ZShtX2NvbmZpZ3VyYXRpb24pKTsKQEAgLTMwNSw3ICszMTQsNyBAQCBp
bnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0CiAgICAgICAgICAg
ICAgICAgLy8gc2F0aXNmeWluZyB0aGUgY29uc3RyYWludCBtYXhpbXVtU2NhbGUuCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIG1h
eGltdW1TY2FsZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpyb3Vu
ZChtX2NvbmZpZ3VyYXRpb24ud2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQo
Y29uZmlnTGVuZ3RoKG1fY29uZmlndXJhdGlvbi53aWR0aCkpOwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gSWYgbm90LCBtYWtlIHN1cmUgdGhlIHZpZXdwb3J0IHdpZHRoIGFuZCBpbml0aWFsIHNj
YWxlIGNhbiBjby1leGlzdC4KQEAgLTMxNCw3ICszMjMsNyBAQCBpbnQgVmlld3BvcnRDb25maWd1
cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0CiAgICAgICAgICAgICAvLyBUaGUgc3BlY2lmaWVk
IHdpZHRoIGRvZXMgbm90IGZpdCBpbiB2aWV3cG9ydC4gUmV0dXJuIHRoZSBtaW5pbXVtIHdpZHRo
IHRoYXQgc2F0aXNmeSB0aGUgaW5pdGlhbFNjYWxlIGNvbnN0cmFpbnQuCiAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9jb25maWd1cmF0
aW9uLmluaXRpYWxTY2FsZSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQo
bV9jb25maWd1cmF0aW9uLndpZHRoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQoY29uZmln
TGVuZ3RoKG1fY29uZmlndXJhdGlvbi53aWR0aCkpOwogICAgIH0KIAogICAgIC8vIElmIHRoZSBw
YWdlIGhhcyBhIHJlYWwgc2NhbGUsIHRoZW4ganVzdCByZXR1cm4gdGhlIG1pbmltdW0gc2l6ZSBv
dmVyIHRoZSBpbml0aWFsIHNjYWxlLgpAQCAtMzQxLDcgKzM1MCw3IEBAIGludCBWaWV3cG9ydENv
bmZpZ3VyYXRpb246OmxheW91dEhlaWdodCgpIGNvbnN0CiAgICAgICAgICAgICAgICAgLy8gc2F0
aXNmeSB0aGUgY29uc3RyYWludCBtYXhpbXVtU2NhbGUuCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgLyBtYXhpbXVtU2NhbGUpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobV9jb25maWd1cmF0
aW9uLmhlaWdodCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChjb25maWdMZW5ndGgo
bV9jb25maWd1cmF0aW9uLmhlaWdodCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgbm90
LCBtYWtlIHN1cmUgdGhlIHZpZXdwb3J0IHdpZHRoIGFuZCBpbml0aWFsIHNjYWxlIGNhbiBjby1l
eGlzdC4KQEAgLTM1MCw3ICszNTksNyBAQCBpbnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlv
dXRIZWlnaHQoKSBjb25zdAogICAgICAgICAgICAgLy8gVGhlIHNwZWNpZmllZCB3aWR0aCBkb2Vz
IG5vdCBmaXQgaW4gdmlld3BvcnQuIFJldHVybiB0aGUgbWluaW11bSBoZWlnaHQgdGhhdCBzYXRp
c2Z5IHRoZSBpbml0aWFsU2NhbGUgY29uc3RyYWludC4KICAgICAgICAgICAgIHJldHVybiBzdGQ6
OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpIC8gbV9jb25maWd1cmF0aW9uLmluaXRp
YWxTY2FsZSk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobV9jb25maWd1
cmF0aW9uLmhlaWdodCk7CisgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKGNvbmZpZ0xlbmd0aCht
X2NvbmZpZ3VyYXRpb24uaGVpZ2h0KSk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhlIHBhZ2UgaGFz
IGEgcmVhbCBzY2FsZSwgdGhlbiBqdXN0IHJldHVybiB0aGUgbWluaW11bSBzaXplIG92ZXIgdGhl
IGluaXRpYWwgc2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRp
b24uaAppbmRleCA2MzJkMmI0Li4zOTE2YTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmll
d3BvcnRDb25maWd1cmF0aW9uLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgCiBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbigpOworICAgIGRvdWJsZSBjb25m
aWdMZW5ndGgoZG91YmxlIGxlbmd0aCkgY29uc3Q7CiAgICAgaW50IGxheW91dFdpZHRoKCkgY29u
c3Q7CiAgICAgaW50IGxheW91dEhlaWdodCgpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="264016"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239379</attachid>
            <date>2014-10-06 20:18:27 -0700</date>
            <delta_ts>2014-10-07 13:24:05 -0700</delta_ts>
            <desc>resolve on configuration update</desc>
            <filename>defer.03.diff</filename>
            <type>text/plain</type>
            <size>6421</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzdmYjg5Li4yMmYxZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTQtMTAtMDYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IERlZmVyIHJlc29sdXRpb24gb2Ygdmlld3BvcnQgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzM3NgorICAgICAgICByZGFyOi8vcHJvYmxl
bS8xODU1ODA5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFZpZXdwb3J0Q29uZmlndXJhdGlvbiBzaG91bGQgcmVzb2x2ZSB0aGUgdmlld3BvcnQgc2l6
ZSBvbiBjb25maWd1cmF0aW9uIHVwZGF0ZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJvY2Vzc1ZpZXdwb3J0KTogRGVmZXIgcmVz
b2x1dGlvbiBvZiB2aWV3cG9ydCBzaXplLgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5hbGl6ZVZpZXdwb3J0QXJndW1lbnRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDoKKyAgICAgICAgKiBwYWdl
L1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENv
bmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3VyYXRpb24pOiBSZXNvbHZlIHZpZXdwb3J0IHNpemUu
CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdwb3J0QXJndW1l
bnRzTGVuZ3RoKTogUmVzb2x2ZXMgd2lkdGggb3IgaGVpZ2h0IGJhc2VkIG9uIHZpZXdwb3J0IGFy
Z3VtZW50cy4KKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oOgorCiAyMDE0
LTEwLTA2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gUmVzdG9yZSBwcmV2aW91cyBzY3JvbGwgcG9zaXRpb24gdXNpbmcgcmVzdG9yZVZp
ZXdTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxN2IzODU1Li44N2Y3YjNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMwMDEsMTUgKzMwMDEsNiBAQCB2b2lkIERvY3Vt
ZW50Ojpwcm9jZXNzVmlld3BvcnQoY29uc3QgU3RyaW5nJiBmZWF0dXJlcywgVmlld3BvcnRBcmd1
bWVudHM6OlR5cGUgbwogICAgIG1fdmlld3BvcnRBcmd1bWVudHMgPSBWaWV3cG9ydEFyZ3VtZW50
cyhvcmlnaW4pOwogICAgIHByb2Nlc3NBcmd1bWVudHMoZmVhdHVyZXMsICh2b2lkKikmbV92aWV3
cG9ydEFyZ3VtZW50cywgJnNldFZpZXdwb3J0RmVhdHVyZSk7CiAKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS84OTU1OTU5PiBJbnZlc3RpZ2F0ZSBtb3Zp
bmcgdG8gVG9UIFdlYktpdCdzIGV4dGVuZGVkIFZpZXdwb3J0IEltcGxlbWVudGF0aW9uCi0gICAg
Ly8gTW92aW5nIHRvIFRvVCdzIGltcGxlbWVudGF0aW9uIHdvdWxkIG1lYW4gY2FsbGluZyBmaW5k
Q29uZmlndXJhdGlvbkZvclZpZXdwb3J0RGF0YSwgd2hpY2ggZG9lcwotICAgIC8vIGJvdW5kcyBj
aGVja2luZyBhbmQgZGV0ZXJtaW5pbmcgY29uY3JldGUgdmFsdWVzIGZvciBWYWx1ZUF1dG8gd2hp
Y2ggd2UgYWxyZWFkeSBkbyBpbiBVSUtpdC4KLSAgICAvLyBUbyBtYWludGFpbiBvbGQgYmVoYXZp
b3IsIHdlIGp1c3QgbmVlZCB0byB1cGRhdGUgYSBmZXcgdmFsdWVzLCBsZWF2aW5nIEF1dG8ncyBm
b3IgVUlLaXQuCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIGZp
bmFsaXplVmlld3BvcnRBcmd1bWVudHMobV92aWV3cG9ydEFyZ3VtZW50cywgcGFnZS0+Y2hyb21l
KCkuc2NyZWVuU2l6ZSgpKTsKLSNlbmRpZgotCiAgICAgdXBkYXRlVmlld3BvcnRBcmd1bWVudHMo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKaW5kZXggYzdl
YmQxZi4uMjBhNGU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJn
dW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3Bw
CkBAIC00MDEsMjEgKzQwMSw2IEBAIHZvaWQgc2V0Vmlld3BvcnRGZWF0dXJlKGNvbnN0IFN0cmlu
ZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1CiAgICAgICAgIHJl
cG9ydFZpZXdwb3J0V2FybmluZyhkb2N1bWVudCwgVW5yZWNvZ25pemVkVmlld3BvcnRBcmd1bWVu
dEtleUVycm9yLCBrZXlTdHJpbmcsIFN0cmluZygpKTsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykK
LXZvaWQgZmluYWxpemVWaWV3cG9ydEFyZ3VtZW50cyhWaWV3cG9ydEFyZ3VtZW50cyYgYXJndW1l
bnRzLCBjb25zdCBGbG9hdFNpemUmIHNjcmVlblNpemUpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy53
aWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aCkKLSAgICAgICAgYXJn
dW1lbnRzLndpZHRoID0gc2NyZWVuU2l6ZS53aWR0aCgpOwotICAgIGVsc2UgaWYgKGFyZ3VtZW50
cy53aWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQpCi0gICAgICAg
IGFyZ3VtZW50cy53aWR0aCA9IHNjcmVlblNpemUuaGVpZ2h0KCk7Ci0KLSAgICBpZiAoYXJndW1l
bnRzLmhlaWdodCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aCkKLSAgICAg
ICAgYXJndW1lbnRzLmhlaWdodCA9IHNjcmVlblNpemUud2lkdGgoKTsKLSAgICBlbHNlIGlmIChh
cmd1bWVudHMuaGVpZ2h0ID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZUhlaWdodCkK
LSAgICAgICAgYXJndW1lbnRzLmhlaWdodCA9IHNjcmVlblNpemUuaGVpZ2h0KCk7Ci19Ci0jZW5k
aWYKLQogc3RhdGljIGNvbnN0IGNoYXIqIHZpZXdwb3J0RXJyb3JNZXNzYWdlVGVtcGxhdGUoVmll
d3BvcnRFcnJvckNvZGUgZXJyb3JDb2RlKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25z
dCBlcnJvcnNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFy
Z3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXgg
OWE2MTM3ZC4uYjZhZGVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0
QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgK
QEAgLTE1MiwxMCArMTUyLDYgQEAgZmxvYXQgY29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNv
bnRlbnRDb250YWluZWQoY29uc3QgVmlld3BvcnRBdHRyaWJ1dGVzJiByZXMKIHZvaWQgc2V0Vmll
d3BvcnRGZWF0dXJlKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVl
U3RyaW5nLCBEb2N1bWVudCosIHZvaWQqIGRhdGEpOwogdm9pZCByZXBvcnRWaWV3cG9ydFdhcm5p
bmcoRG9jdW1lbnQqLCBWaWV3cG9ydEVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVu
dDEsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQyKTsKIAotI2lmIFBMQVRGT1JNKElPUykKLXZv
aWQgZmluYWxpemVWaWV3cG9ydEFyZ3VtZW50cyhWaWV3cG9ydEFyZ3VtZW50cyYsIGNvbnN0IEZs
b2F0U2l6ZSYgc2NyZWVuU2l6ZSk7Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gVmlld3BvcnRBcmd1bWVudHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9W
aWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGE5MzQwMDYuLmI2OTQzNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKQEAgLTI3Miw4ICsy
NzIsOCBAQCB2b2lkIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dXBkYXRlQ29uZmlndXJhdGlvbigp
CiAKICAgICBkb3VibGUgbWluaW11bVZpZXdwb3J0QXJndW1lbnRzRGltZW5zaW9uID0gMTA7CiAg
ICAgZG91YmxlIG1heGltdW1WaWV3cG9ydEFyZ3VtZW50c0RpbWVuc2lvbiA9IDEwMDAwOwotICAg
IGFwcGx5Vmlld3BvcnRBcmd1bWVudChtX2NvbmZpZ3VyYXRpb24ud2lkdGgsIHZpZXdwb3J0QXJn
dW1lbnRzT3ZlcnJpZGVzV2lkdGgsIG1fdmlld3BvcnRBcmd1bWVudHMud2lkdGgsIG1pbmltdW1W
aWV3cG9ydEFyZ3VtZW50c0RpbWVuc2lvbiwgbWF4aW11bVZpZXdwb3J0QXJndW1lbnRzRGltZW5z
aW9uKTsKLSAgICBhcHBseVZpZXdwb3J0QXJndW1lbnQobV9jb25maWd1cmF0aW9uLmhlaWdodCwg
dmlld3BvcnRBcmd1bWVudHNPdmVycmlkZXNIZWlnaHQsIG1fdmlld3BvcnRBcmd1bWVudHMuaGVp
Z2h0LCBtaW5pbXVtVmlld3BvcnRBcmd1bWVudHNEaW1lbnNpb24sIG1heGltdW1WaWV3cG9ydEFy
Z3VtZW50c0RpbWVuc2lvbik7CisgICAgYXBwbHlWaWV3cG9ydEFyZ3VtZW50KG1fY29uZmlndXJh
dGlvbi53aWR0aCwgdmlld3BvcnRBcmd1bWVudHNPdmVycmlkZXNXaWR0aCwgdmlld3BvcnRBcmd1
bWVudHNMZW5ndGgobV92aWV3cG9ydEFyZ3VtZW50cy53aWR0aCksIG1pbmltdW1WaWV3cG9ydEFy
Z3VtZW50c0RpbWVuc2lvbiwgbWF4aW11bVZpZXdwb3J0QXJndW1lbnRzRGltZW5zaW9uKTsKKyAg
ICBhcHBseVZpZXdwb3J0QXJndW1lbnQobV9jb25maWd1cmF0aW9uLmhlaWdodCwgdmlld3BvcnRB
cmd1bWVudHNPdmVycmlkZXNIZWlnaHQsIHZpZXdwb3J0QXJndW1lbnRzTGVuZ3RoKG1fdmlld3Bv
cnRBcmd1bWVudHMuaGVpZ2h0KSwgbWluaW11bVZpZXdwb3J0QXJndW1lbnRzRGltZW5zaW9uLCBt
YXhpbXVtVmlld3BvcnRBcmd1bWVudHNEaW1lbnNpb24pOwogCiAgICAgaWYgKHZpZXdwb3J0QXJn
dW1lbnRzT3ZlcnJpZGVzSW5pdGlhbFNjYWxlIHx8IHZpZXdwb3J0QXJndW1lbnRzT3ZlcnJpZGVz
V2lkdGggfHwgdmlld3BvcnRBcmd1bWVudHNPdmVycmlkZXNIZWlnaHQpIHsKICAgICAgICAgbV9j
b25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlzU2V0ID0gdmlld3BvcnRBcmd1bWVudHNPdmVycmlk
ZXNJbml0aWFsU2NhbGU7CkBAIC0yOTAsNiArMjkwLDE1IEBAIHZvaWQgVmlld3BvcnRDb25maWd1
cmF0aW9uOjp1cGRhdGVDb25maWd1cmF0aW9uKCkKICNlbmRpZgogfQogCitkb3VibGUgVmlld3Bv
cnRDb25maWd1cmF0aW9uOjp2aWV3cG9ydEFyZ3VtZW50c0xlbmd0aChkb3VibGUgbGVuZ3RoKSBj
b25zdAoreworICAgIGlmIChsZW5ndGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNl
V2lkdGgpCisgICAgICAgIHJldHVybiBhY3RpdmVNaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzKCkud2lkdGgoKTsKKyAgICBpZiAobGVuZ3RoID09IFZpZXdwb3J0QXJndW1l
bnRzOjpWYWx1ZURldmljZUhlaWdodCkKKyAgICAgICAgcmV0dXJuIGFjdGl2ZU1pbmltdW1MYXlv
dXRTaXplSW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMoKS5oZWlnaHQoKTsKKyAgICByZXR1cm4gbGVu
Z3RoOworfQorCiBpbnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKCFjb25zdHJhaW50c0FyZUFsbFJlbGF0aXZlKG1fY29uZmlndXJhdGlv
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKaW5kZXgg
NjMyZDJiNC4uMmEyNGZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9y
dENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgIAogcHJpdmF0ZToKICAg
ICB2b2lkIHVwZGF0ZUNvbmZpZ3VyYXRpb24oKTsKKyAgICBkb3VibGUgdmlld3BvcnRBcmd1bWVu
dHNMZW5ndGgoZG91YmxlIGxlbmd0aCkgY29uc3Q7CiAgICAgaW50IGxheW91dFdpZHRoKCkgY29u
c3Q7CiAgICAgaW50IGxheW91dEhlaWdodCgpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="264103"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>