<?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>142789</bug_id>
          
          <creation_ts>2015-03-17 13:19:12 -0700</creation_ts>
          <short_desc>Scroll latching logic can get stuck in &apos;scrollable=&quot;no&quot;&apos; iframes</short_desc>
          <delta_ts>2015-09-04 23:58:31 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>145574</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077946</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-17 13:19:12 -0700</bug_when>
    <thetext>Certain advertisements on website are hosted inside iframes that have content areas that are larger than their on-page dimensions. The iframes are marked with &apos;scrollinge=&quot;no&quot;&apos; to prevent them from scrolling content.

The latching logic didn&apos;t understand this case, and would only consider whether the iframe had scrollable content (which it does in this case), ignoring the &apos;scrolling=&quot;no&quot;&apos; declaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077947</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-17 13:20:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/20129494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078009</commentid>
    <comment_count>2</comment_count>
      <attachid>248881</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-17 15:59:15 -0700</bug_when>
    <thetext>Created attachment 248881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078014</commentid>
    <comment_count>3</comment_count>
      <attachid>248881</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-17 16:11:52 -0700</bug_when>
    <thetext>Comment on attachment 248881
Patch

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

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:764
&gt; +    if (is&lt;Element&gt;(container)) {
&gt; +        const auto&amp; scrollingAttribute = downcast&lt;Element&gt;(container).fastGetAttribute(HTMLNames::scrollingAttr);
&gt; +        if (scrollingAttribute == &quot;no&quot;)
&gt; +            return true;
&gt; +    }

It seems odd to do this without checking that the element is an iframe.

I still think the rest of this function is confused about the relationship between the container node and the scrollable area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079392</commentid>
    <comment_count>4</comment_count>
      <attachid>249261</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-23 13:49:54 -0700</bug_when>
    <thetext>Created attachment 249261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079405</commentid>
    <comment_count>5</comment_count>
      <attachid>249261</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-23 14:07:33 -0700</bug_when>
    <thetext>Comment on attachment 249261
Patch

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

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:948
&gt; +        // WebKit2 code path

Did you mean to leave this in?

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:964
&gt; +        // If the platform widget is handling the event, we always want to return false

Another missing full stop. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079488</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-03-23 15:53:05 -0700</bug_when>
    <thetext>Committed r181879: &lt;http://trac.webkit.org/changeset/181879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080189</commentid>
    <comment_count>7</comment_count>
      <attachid>249261</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-25 21:27:15 -0700</bug_when>
    <thetext>Comment on attachment 249261
Patch

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

Why no tests?

&gt; Source/WebCore/ChangeLog:14
&gt; +            different.

differently :)

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:748
&gt; +        if (is&lt;HTMLIFrameElement&gt;(candidate))
&gt; +            continue;

I think you could check this outside the loop, because you&apos;ll never hit children of a HTMLIFrameElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123896</commentid>
    <comment_count>8</comment_count>
      <attachid>249261</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-09-04 23:58:31 -0700</bug_when>
    <thetext>Comment on attachment 249261
Patch

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

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:-877
&gt; -            latchingState-&gt;setStartedGestureAtScrollLimit(scrolledToEdgeInDominantDirection(*scrollableContainer, *scrollableArea, wheelEvent.deltaX(), wheelEvent.deltaY()));

You removed the only line of code that ever setStartedGestureAtScrollLimit to something non-false. I think this was an accident? Will continue investigating.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248881</attachid>
            <date>2015-03-17 15:59:15 -0700</date>
            <delta_ts>2015-03-23 13:49:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142789-20150317155844.patch</filename>
            <type>text/plain</type>
            <size>3326</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTY2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE1LTAzLTE3ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBsYXRjaGluZyBs
b2dpYyBjYW4gZ2V0IHN0dWNrIGluICdzY3JvbGxhYmxlPSJubyInIGlmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjc4OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjAxMjk0OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIHNjcm9sbCBsYXRjaGluZyBjb2RlIHdhcyBvbmx5IGRldGVy
bWluaW5nIGlmIHRoZSByZWdpb24gY29uc2lkZXJlZCBmb3IgbGF0Y2hpbmcKKyAgICAgICAgaGFk
IHN1ZmZpY2llbnQgc2Nyb2xsaW5nIHNwYWNlIHRvIG1vdmU7IGl0IGlnbm9yZWQgdGhlICdzY3Jv
bGxpbmcnIGF0dHJpYnV0ZSBlbnRpcmVseS4KKyAgICAgICAgVGhpcyBjcmVhdGVkIHByb2JsZW1z
IHdoZW4gYW4gaWZyYW1lIGNvbnRhaW5lZCBjb250ZW50IHRoYXQgY291bGQgYmUgc2Nyb2xsZWQs
IGJ1dAorICAgICAgICB0aGUgaWZyYW1lIGl0c2VsZiB3YXMgbWFya2VkIGFzIG5vdCBzY3JvbGxh
YmxlLgorICAgICAgICAKKyAgICAgICAgVGhlIHBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZlbnRz
IGxvZ2ljIHdhcyBhbHNvIHdyb25nLiBJbiB0aGUgY2FzZSBvZiBhbiBpZnJhbWUsIGl0CisgICAg
ICAgIGFzc3VtZWQgdGhhdCB0aGUgd2hlZWwgZXZlbnQgdGFyZ2V0IHdhcyByZWxldmFudCBmb3Ig
bWFraW5nIGRlY2lzaW9ucyBhYm91dCBzY3JvbGxpbmcuCisgICAgICAgIEJ1dCBtdWNoIG9mIHRo
ZSB0aW1lLCB0aGUgd2hlZWwgZXZlbnQgdGFyZ2V0IHdhcyBhIGxpbmsgb3IgcGFyYWdyYXBoIGVs
ZW1lbnQgYW5kIGhhZAorICAgICAgICBubyBzY3JvbGxpbmcgaW5mb3JtYXRpb24uIEluc3RlYWQs
IHdlIHNob3VsZCBmaW5kIHRoZSByZWxldmFudCBlbmNsb3Npbmcgc2Nyb2xsYWJsZQorICAgICAg
ICBjb250YWluZXIuIElmIG5vIHN1Y2ggY29udGFpbmVyIGlzIGZvdW5kLCB3ZSBzaG91bGQgdXNl
IHRoZSBpZnJhbWUgYm9keSB0byBhc3Nlc3MKKyAgICAgICAgdGhlIGFiaWxpdHkgdG8gc2Nyb2xs
LgorCisgICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6c2Nyb2xsZWRUb0VkZ2VJbkRvbWluYW50RGlyZWN0aW9uKTogQ2hlY2sgdGhlICdzY3Jv
bGxhYmxlJyBwcm9wZXJ0eSBpZiB0aGUKKyAgICAgICAgcGFzc2VkIGVsZW1lbnQgaXMgYW4gaWZy
YW1lLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JX
aGVlbEV2ZW50cyk6IERvIGEgYmV0dGVyIGpvYiBvZiBmaW5kaW5nIHRoZQorICAgICAgICByaWdo
dCBlbGVtZW50IHRvIGV2YWx1YXRlIGZvciBzY3JvbGxpbmcgZGVjaXNpb25zLgorCiAyMDE1LTAz
LTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENh
bm5vdCBpbnZva2UgYWN0aW9uIG1lbnVzIGFueW1vcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0JKHJldmlzaW9uIDE4MTU3NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzU3
LDYgKzc1NywxMiBAQCBzdGF0aWMgYm9vbCBkZWx0YUlzUHJlZG9taW5hbnRseVZlcnRpY2FsCiAg
ICAgCiBzdGF0aWMgYm9vbCBzY3JvbGxlZFRvRWRnZUluRG9taW5hbnREaXJlY3Rpb24oY29uc3Qg
Q29udGFpbmVyTm9kZSYgY29udGFpbmVyLCBjb25zdCBTY3JvbGxhYmxlQXJlYSYgYXJlYSwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVkpCiB7CisgICAgaWYgKGlzPEVsZW1lbnQ+KGNvbnRhaW5l
cikpIHsKKyAgICAgICAgY29uc3QgYXV0byYgc2Nyb2xsaW5nQXR0cmlidXRlID0gZG93bmNhc3Q8
RWxlbWVudD4oY29udGFpbmVyKS5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c2Nyb2xsaW5n
QXR0cik7CisgICAgICAgIGlmIChzY3JvbGxpbmdBdHRyaWJ1dGUgPT0gIm5vIikKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIGlmICghY29udGFpbmVyLnJlbmRlcmVyKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC04NDksOSArODU1LDE4IEBAIHZvaWQgRXZlbnRI
YW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JXaGUKIAogICAgIHNjcm9sbGFibGVDb250YWluZXIg
PSBudWxscHRyOwogICAgIHNjcm9sbGFibGVBcmVhID0gbnVsbHB0cjsKLSAgICBpZiAoIXZpZXcg
fHwgIXZpZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKSkgeworICAgIGlmICghdmlldykgewogICAg
ICAgICBzY3JvbGxhYmxlQ29udGFpbmVyID0gd2hlZWxFdmVudFRhcmdldDsKICAgICAgICAgc2Ny
b2xsYWJsZUFyZWEgPSB2aWV3OworICAgIH0gZWxzZSBpZiAoIXZpZXctPmZyYW1lKCkuaXNNYWlu
RnJhbWUoKSkgeworICAgICAgICBpZiAoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KHdoZWVsRXZlbnRU
YXJnZXQuZ2V0KCkpKQorICAgICAgICAgICAgc2Nyb2xsYWJsZUNvbnRhaW5lciA9IHdoZWVsRXZl
bnRUYXJnZXQ7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2Nyb2xsYWJsZUNvbnRhaW5l
ciA9IGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyKHdoZWVsRXZlbnRUYXJnZXQuZ2V0
KCkpOworICAgICAgICAgICAgaWYgKCFzY3JvbGxhYmxlQ29udGFpbmVyKQorICAgICAgICAgICAg
ICAgIHNjcm9sbGFibGVDb250YWluZXIgPSB2aWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmJvZHlP
ckZyYW1lc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSB2aWV3Owog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChldmVudFRhcmdldElzUGxhdGZvcm1XaWRnZXQod2hl
ZWxFdmVudFRhcmdldC5nZXQoKSkpIHsKICAgICAgICAgICAgIHNjcm9sbGFibGVDb250YWluZXIg
PSB3aGVlbEV2ZW50VGFyZ2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249261</attachid>
            <date>2015-03-23 13:49:54 -0700</date>
            <delta_ts>2015-03-23 14:07:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142789-20150323134918.patch</filename>
            <type>text/plain</type>
            <size>15628</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTAzLTIzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFNjcm9sbCBsYXRjaGluZyBs
b2dpYyBjYW4gZ2V0IHN0dWNrIGluICdzY3JvbGxhYmxlPSJubyInIGlmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mjc4OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjAxMjk0OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgdGhlIEV2ZW50SGFuZGxlciBhbmQgbGF0Y2hpbmcg
Y29kZSBhcyBmb2xsb3dzOgorICAgICAgICAoMSkgRG8gbm90IGhhbmRsZSBpZnJhbWUgZWxlbWVu
dHMgYXMgcGFydCBvZiB0aGUgbm9ybWFsIGxhdGNoaW5nIGxvZ2ljLiBJbnN0ZWFkLCBpZnJhbWVz
IHNob3VsZAorICAgICAgICAgICAgYmUgZXZhbHVhdGVkIGR1cmluZyB0aGUgJ3BsYXRmb3JtQ29t
cGxldGVXaGVlbEV2ZW50JyBwaGFzZSBvZiBwcm9jZXNzaW5nIGFzIHRvcC1sZXZlbCBzY3JvbGxp
bmcKKyAgICAgICAgICAgIGZyYW1lcy4KKyAgICAgICAgKDIpIEdldCByaWQgb2YgdGhlIGlsbC1j
b25jZWl2ZWQgbm90YXRpb24gdGhhdCB3ZSBzaG91bGQgcHJvY2VzcyBub24tbWFpbmZyYW1lIGFu
ZCBtYWluLWZyYW1lIGZyYW1lcworICAgICAgICAgICAgZGlmZmVyZW50LgorICAgICAgICAoMykg
TW9kaWZ5IGNvZGUgdG8gcmVmbGVjdCB0aGF0IHRoZSBzY3JvbGwgbGF0Y2hpbmcgY29kZSByZWFs
bHkgZGVhbHMgd2l0aCBvdmVyZmxvdyBzY3JvbGxpbmcuIENvbnNlcXVlbnRseSwKKyAgICAgICAg
ICAgIHRoZSAnZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXInIHdhcyByZW5hbWVkIHRv
ICdmaW5kRW5jbG9zaW5nT3ZlcmZsb3dTY3JvbGwnIGFuZCBkb2VzIG5vdAorICAgICAgICAgICAg
dHJlYXQgaWZyYW1lIGFzIGEgc3VpdGFibGUgdGFyZ2V0LgorICAgICAgICAoNCkgRG8gbm90IGNy
ZWF0ZSBhIGxhdGNoaW5nIHN0YXRlIG9iamVjdCB3aGVuIHRoZSBjb250YWluZXIgYmVpbmcgZXZh
bHVhdGVkIGlzIGFscmVhZHkgc2Nyb2xsZWQgdG8gdGhlCisgICAgICAgICAgICBleHRyZW1lIHBv
c2l0aW9uIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIG1vdXNlIGdlc3R1cmUuIEluIHRoaXMgY2Fz
ZSwgd2Ugd2FudCB0aGUgZW5jbG9zaW5nIGZyYW1lCisgICAgICAgICAgICB0byBiZSB0aGUgbGF0
Y2hpbmcgdGFyZ2V0LgorICAgICAgICAoNSkgRG8gbm90IHRyZWF0IHRoZSBzdGF0ZSB3aGVyZSB0
aGUgbW91c2Ugd2hlZWwgZ2VzdHVyZSBoYXMgZW5kZWQgbWFudWFsIHNjcm9sbGluZywgYnV0IGhh
cyBub3QgZW5kZWQKKyAgICAgICAgICAgIG1vbWVudHVtIHNjcm9sbGluZywgYXMgYW4gYXBwcm9w
cmlhdGUgdGltZSB0byBzZWxlY3QgYSBsYXRjaGluZyB0YXJnZXQuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBsYXRm
b3JtQ29tcGxldGVXaGVlbEV2ZW50KTogTW9kaWZ5IHNpZ25hdHVyZSB0byByZW1vdmUgdW5uZWVk
ZWQgYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVs
RXZlbnQpOiBNb2RpZnkgY2FsbCB0byAncGxhdGZvcm1Db21wbGV0ZVdoZWVsRXZlbnQnIHRvIHJl
bW92ZSB1bnVzZWQgYXJndW1lbnQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpm
aW5kRW5jbG9zaW5nT3ZlcmZsb3dTY3JvbGwpOiBSZW5hbWVkIGZyb20gJ2ZpbmRFbmNsb3NpbmdT
Y3JvbGxhYmxlQ29udGFpbmVyJyBhbmQgcmV2aXNlZCBwZXIgdGhlCisgICAgICAgIG5vdGVzIGFi
b3ZlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JX
aGVlbEV2ZW50cyk6IFJlbW92ZSBtYWluRnJhbWUgdnMuIG5vbi1tYWluRnJhbWUgY29kZSBwYXRo
cyBhbmQKKyAgICAgICAgY29uc29saWRhdGUgbG9naWMuCisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVXaGVlbEV2ZW50KTogUmVtb3ZlIHVudXNlZCBhcmd1
bWVudC4gVGhlIHdoZWVsIGV2ZW50IHRhcmdldCBpcyBubworICAgICAgICBsb25nZXIgbmVlZGVk
IGhlcmUsIG5vdyB0aGF0IGlmcmFtZXMgYXJlIG5vdCBwcm9jZXNzZWQgYnkgdGhpcyBjb2RlLgor
ICAgICAgICAoV2ViQ29yZTo6ZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNXaGVlbFNj
cm9sbGVkRWxlbWVudDopIFN3aXRjaCB0byBtb3ZlIG9wZXJhdG9yIGZvciBwYXNzaW5nCisgICAg
ICAgIGEgdGVtcG9yYXJ5IFJlZlB0ciB0byB0aGUgdGhlIGZ1bmN0aW9uLgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVu
dDo6dXNlTGF0Y2hlZEV2ZW50RWxlbWVudCk6IFJlY29nbml6ZSAncGhhc2U9ZW5kZWQsIG1vbWVu
dHVtPW5vbmUnIGFzIGEgc3RhdGUKKyAgICAgICAgdGhhdCBzaG91bGQgbm90IGNhdXNlIGxhdGNo
aW5nIHN0YXRlIHRvIGJlIHJldmlzZWQuCisKIDIwMTUtMDMtMjMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWNjZXNzaWJpbGl0eSBjcmFzaGluZyBi
ZWNhdXNlIE1lZGlhUGxheWVyIGlzIGxheWluZyBvdXQgVUkgb2ZmIHRoZSBtYWluIHRocmVhZApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gMTgxODYwKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjEyLDcgKzI2MTIsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1SZWNvcmRXaGVl
bEV2CiAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVsdGFUcmFja2VyKCktPnJl
Y29yZFdoZWVsRXZlbnREZWx0YShldmVudCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwbGF0
Zm9ybUNvbXBsZXRlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBF
bGVtZW50KiwgQ29udGFpbmVyTm9kZSosIFNjcm9sbGFibGVBcmVhKikKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwbGF0Zm9ybUNvbXBsZXRlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IGV2ZW50LCBDb250YWluZXJOb2RlKiwgU2Nyb2xsYWJsZUFyZWEqKQogewogICAgIC8vIFdlIGRv
IGFub3RoZXIgY2hlY2sgb24gdGhlIGZyYW1lIHZpZXcgYmVjYXVzZSB0aGUgZXZlbnQgaGFuZGxl
ciBjYW4gcnVuIEpTIHdoaWNoIHJlc3VsdHMgaW4gdGhlIGZyYW1lIGdldHRpbmcgZGVzdHJveWVk
LgogICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUudmlldygpOwpAQCAtMjcwOCw3ICsyNzA4
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29ucwogICAgIGlmIChz
Y3JvbGxhYmxlQXJlYSkKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9sbGVkUHJvZ3Jh
bW1hdGljYWxseShmYWxzZSk7CiAKLSAgICByZXR1cm4gcGxhdGZvcm1Db21wbGV0ZVdoZWVsRXZl
bnQoZXZlbnQsIGVsZW1lbnQuZ2V0KCksIHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCksIHNjcm9s
bGFibGVBcmVhKTsKKyAgICByZXR1cm4gcGxhdGZvcm1Db21wbGV0ZVdoZWVsRXZlbnQoZXZlbnQs
IHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCksIHNjcm9sbGFibGVBcmVhKTsKIH0KIAogdm9pZCBF
dmVudEhhbmRsZXI6OmNsZWFyTGF0Y2hlZFN0YXRlKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAkocmV2aXNpb24gMTgxODYwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcGxhdGZvcm1QcmVwYXJlRm9yV2hlZWxFdmVudHMoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiwgY29uc3QgSGl0VGVzdFJlc3VsdCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRUYXJn
ZXQsIFJlZlB0cjxDb250YWluZXJOb2RlPiYgc2Nyb2xsYWJsZUNvbnRhaW5lciwgU2Nyb2xsYWJs
ZUFyZWEqJiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAgICB2b2lkIHBsYXRmb3JtUmVjb3JkV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSAgICBib29sIHBsYXRmb3JtQ29t
cGxldGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIEVsZW1lbnQqIGV2ZW50
VGFyZ2V0LCBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVyLCBTY3JvbGxhYmxlQXJl
YSopOworICAgIGJvb2wgcGxhdGZvcm1Db21wbGV0ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgQ29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lciwgU2Nyb2xsYWJs
ZUFyZWEqKTsKICAgICBib29sIHBsYXRmb3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2lkZ2V0JiwgQ29udGFpbmVyTm9k
ZSogc2Nyb2xsYWJsZUNvbnRhaW5lcik7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQkocmV2aXNp
b24gMTgxODYwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUg
IkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaCIKQEAgLTczNywxMSArNzM5LDE3IEBAIHVuc2ln
bmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXIKICAgICByZXR1cm4gUGxhdGZvcm1F
dmVudDo6Q3RybEtleSB8IFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKIH0KIAotc3RhdGljIENvbnRh
aW5lck5vZGUqIGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUq
IG5vZGUpCitzdGF0aWMgQ29udGFpbmVyTm9kZSogZmluZEVuY2xvc2luZ092ZXJmbG93U2Nyb2xs
KENvbnRhaW5lck5vZGUqIG5vZGUpCiB7CiAgICAgLy8gRmluZCB0aGUgZmlyc3Qgbm9kZSB3aXRo
IGEgdmFsaWQgc2Nyb2xsYWJsZSBhcmVhIHN0YXJ0aW5nIHdpdGggdGhlIGN1cnJlbnQKICAgICAv
LyBub2RlIGFuZCB0cmF2ZXJzaW5nIGl0cyBwYXJlbnRzIChvciBzaGFkb3cgaG9zdHMpLgogICAg
IGZvciAoQ29udGFpbmVyTm9kZSogY2FuZGlkYXRlID0gbm9kZTsgY2FuZGlkYXRlOyBjYW5kaWRh
dGUgPSBjYW5kaWRhdGUtPnBhcmVudE9yU2hhZG93SG9zdE5vZGUoKSkgeworICAgICAgICBpZiAo
aXM8SFRNTElGcmFtZUVsZW1lbnQ+KGNhbmRpZGF0ZSkpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBpZiAoaXM8SFRNTEh0bWxFbGVtZW50PihjYW5kaWRhdGUpIHx8IGlzPEhUTUxE
b2N1bWVudD4oY2FuZGlkYXRlKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAg
ICAgIFJlbmRlckJveCogYm94ID0gY2FuZGlkYXRlLT5yZW5kZXJCb3goKTsKICAgICAgICAgaWYg
KGJveCAmJiBib3gtPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgpKQogICAgICAg
ICAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKQEAgLTg0OSwxNSArODU3LDE0IEBAIHZvaWQgRXZlbnRI
YW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JXaGUKIAogICAgIHNjcm9sbGFibGVDb250YWluZXIg
PSBudWxscHRyOwogICAgIHNjcm9sbGFibGVBcmVhID0gbnVsbHB0cjsKLSAgICBpZiAoIXZpZXcg
fHwgIXZpZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKSkgeworICAgIGlmICghdmlldykKICAgICAg
ICAgc2Nyb2xsYWJsZUNvbnRhaW5lciA9IHdoZWVsRXZlbnRUYXJnZXQ7Ci0gICAgICAgIHNjcm9s
bGFibGVBcmVhID0gdmlldzsKLSAgICB9IGVsc2UgeworICAgIGVsc2UgewogICAgICAgICBpZiAo
ZXZlbnRUYXJnZXRJc1BsYXRmb3JtV2lkZ2V0KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpKSB7CiAg
ICAgICAgICAgICBzY3JvbGxhYmxlQ29udGFpbmVyID0gd2hlZWxFdmVudFRhcmdldDsKICAgICAg
ICAgICAgIHNjcm9sbGFibGVBcmVhID0gc2Nyb2xsVmlld0ZvckV2ZW50VGFyZ2V0KHdoZWVsRXZl
bnRUYXJnZXQuZ2V0KCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2Nyb2xsYWJs
ZUNvbnRhaW5lciA9IGZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyKHdoZWVsRXZlbnRU
YXJnZXQuZ2V0KCkpOworICAgICAgICAgICAgc2Nyb2xsYWJsZUNvbnRhaW5lciA9IGZpbmRFbmNs
b3NpbmdPdmVyZmxvd1Njcm9sbCh3aGVlbEV2ZW50VGFyZ2V0LmdldCgpKTsKICAgICAgICAgICAg
IGlmIChzY3JvbGxhYmxlQ29udGFpbmVyKSB7CiAgICAgICAgICAgICAgICAgaWYgKFJlbmRlckJv
eCogYm94ID0gc2Nyb2xsYWJsZUNvbnRhaW5lci0+cmVuZGVyQm94KCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzPFJlbmRlckxpc3RCb3g+KCpib3gpKQpAQCAtODY1LDI1ICs4NzIsMzAg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtUHJlcGFyZUZvcldoZQogICAgICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlQXJlYSA9IGJv
eC0+bGF5ZXIoKTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHNjcm9sbGFibGVDb250YWluZXIgPSB2aWV3LT5mcmFtZSgpLmRvY3VtZW50
KCktPmJvZHlPckZyYW1lc2V0KCk7CisgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZUFyZWEgPSB2
aWV3OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIAogICAgIFNjcm9sbExh
dGNoaW5nU3RhdGUqIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNoaW5n
U3RhdGUoKTsKICAgICBpZiAod2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCkpIHsK
LSAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwotICAg
ICAgICBsYXRjaGluZ1N0YXRlID0gbV9mcmFtZS5tYWluRnJhbWUoKS5sYXRjaGluZ1N0YXRlKCk7
Ci0gICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxlQ29udGFpbmVyKQotICAg
ICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KHNj
cm9sbGVkVG9FZGdlSW5Eb21pbmFudERpcmVjdGlvbigqc2Nyb2xsYWJsZUNvbnRhaW5lciwgKnNj
cm9sbGFibGVBcmVhLCB3aGVlbEV2ZW50LmRlbHRhWCgpLCB3aGVlbEV2ZW50LmRlbHRhWSgpKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFN0YXJ0ZWRHZXN0
dXJlQXRTY3JvbGxMaW1pdChmYWxzZSk7Ci0gICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVs
RXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOwotICAgICAgICBsYXRjaGluZ1N0YXRlLT5z
ZXRGcmFtZSgmbV9mcmFtZSk7Ci0gICAgICAgIC8vIEZJWE1FOiBXaGF0IHByZXZlbnRzIHVzIGZy
b20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxlIGNvbnRhaW5lciB3aGlsZSBzdGlsbCBob2xkaW5n
IGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNv
bnRhaW5lcihzY3JvbGxhYmxlQ29udGFpbmVyKTsKLSAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0
V2lkZ2V0SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7Ci0gICAgICAgIGlzT3Zlcldp
ZGdldCA9IGxhdGNoaW5nU3RhdGUtPndpZGdldElzTGF0Y2hlZCgpOwotICAgICAgICBtX2ZyYW1l
Lm1haW5GcmFtZSgpLndoZWVsRXZlbnREZWx0YVRyYWNrZXIoKS0+YmVnaW5UcmFja2luZ0RlbHRh
cygpOworICAgICAgICBpZiAoc2Nyb2xsYWJsZUNvbnRhaW5lciAmJiBzY3JvbGxhYmxlQXJlYSkg
eworICAgICAgICAgICAgYm9vbCBzdGFydGluZ0F0U2Nyb2xsTGltaXQgPSBzY3JvbGxlZFRvRWRn
ZUluRG9taW5hbnREaXJlY3Rpb24oKnNjcm9sbGFibGVDb250YWluZXIsICpzY3JvbGxhYmxlQXJl
YSwgd2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSk7CisgICAgICAgICAg
ICBpZiAoIXN0YXJ0aW5nQXRTY3JvbGxMaW1pdCkgeworICAgICAgICAgICAgICAgIG1fZnJhbWUu
bWFpbkZyYW1lKCkucHVzaE5ld0xhdGNoaW5nU3RhdGUoKTsKKyAgICAgICAgICAgICAgICBsYXRj
aGluZ1N0YXRlID0gbV9mcmFtZS5tYWluRnJhbWUoKS5sYXRjaGluZ1N0YXRlKCk7CisgICAgICAg
ICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZh
bHNlKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRXaGVlbEV2ZW50RWxlbWVu
dCh3aGVlbEV2ZW50VGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRG
cmFtZSgmbV9mcmFtZSk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoYXQgcHJldmVudHMg
dXMgZnJvbSBkZWxldGluZyB0aGlzIHNjcm9sbGFibGUgY29udGFpbmVyIHdoaWxlIHN0aWxsIGhv
bGRpbmcgYSBwb2ludGVyIHRvIGl0PworICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNl
dFNjcm9sbGFibGVDb250YWluZXIoc2Nyb2xsYWJsZUNvbnRhaW5lcik7CisgICAgICAgICAgICAg
ICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2lkZ2V0SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQo
KSk7CisgICAgICAgICAgICAgICAgaXNPdmVyV2lkZ2V0ID0gbGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0
SXNMYXRjaGVkKCk7CisgICAgICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2
ZW50RGVsdGFUcmFja2VyKCktPmJlZ2luVHJhY2tpbmdEZWx0YXMoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogICAgIH0gZWxzZSBpZiAod2hlZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5n
KCkpCiAgICAgICAgIGNsZWFyTGF0Y2hlZFN0YXRlKCk7CiAKQEAgLTkyMyw0MCArOTM1LDM3IEBA
IHN0YXRpYyBGcmFtZVZpZXcqIGZyYW1lVmlld0ZvckxhdGNoaW5nU3QKICAgICByZXR1cm4gbGF0
Y2hpbmdTdGF0ZS0+ZnJhbWUoKSA/IGxhdGNoaW5nU3RhdGUtPmZyYW1lKCktPnZpZXcoKSA6IGZy
YW1lLnZpZXcoKTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgRWxlbWVudCogd2hl
ZWxFdmVudFRhcmdldCwgQ29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lciwgU2Nyb2xs
YWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQorYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29t
cGxldGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgQ29u
dGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lciwgU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFi
bGVBcmVhKQogewogICAgIC8vIFdlIGRvIGFub3RoZXIgY2hlY2sgb24gdGhlIGZyYW1lIHZpZXcg
YmVjYXVzZSB0aGUgZXZlbnQgaGFuZGxlciBjYW4gcnVuIEpTIHdoaWNoIHJlc3VsdHMgaW4gdGhl
IGZyYW1lIGdldHRpbmcgZGVzdHJveWVkLgogICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUu
dmlldygpOwogCiAgICAgU2Nyb2xsTGF0Y2hpbmdTdGF0ZSogbGF0Y2hpbmdTdGF0ZSA9IG1fZnJh
bWUubWFpbkZyYW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAgIGlmICh3aGVlbEV2ZW50LnVzZUxh
dGNoZWRFdmVudEVsZW1lbnQoKSAmJiBsYXRjaGluZ1N0YXRlICYmIGxhdGNoaW5nU3RhdGUtPnNj
cm9sbGFibGVDb250YWluZXIoKSkgewotICAgICAgICB2aWV3ID0gZnJhbWVWaWV3Rm9yTGF0Y2hp
bmdTdGF0ZShtX2ZyYW1lLCBsYXRjaGluZ1N0YXRlKTsKLSAgICAgICAgaWYgKCF2aWV3IHx8ICF2
aWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgICAgIGJvb2wgZGlkSGFuZGxl
V2hlZWxFdmVudCA9IHZpZXcgJiYgdmlldy0+d2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKLSAgICAg
ICAgICAgIGlmIChzY3JvbGxhYmxlQ29udGFpbmVyID09IGxhdGNoaW5nU3RhdGUtPnNjcm9sbGFi
bGVDb250YWluZXIoKSkgewotICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBqdXN0IHN0YXJ0
aW5nIGEgc2Nyb2xsIGV2ZW50LCBhbmQgaGF2ZSBub3doZXJlIGxlZnQgdG8gc2Nyb2xsLCBhbGxv
dwotICAgICAgICAgICAgICAgIC8vIHRoZSBlbmNsb3NpbmcgZnJhbWUgdG8gaGFuZGxlIHRoZSBz
Y3JvbGwuCi0gICAgICAgICAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCA9ICFsYXRjaGluZ1N0
YXRlLT5zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoKTsKLSAgICAgICAgICAgICAgICBpZiAo
IWRpZEhhbmRsZVdoZWVsRXZlbnQpCi0gICAgICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZy
YW1lKCkucG9wTGF0Y2hpbmdTdGF0ZSgpOwotICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAv
LyBJZiB0aGUgcGxhdGZvcm0gd2lkZ2V0IGlzIGhhbmRsaW5nIHRoZSBldmVudCwgd2UgYWx3YXlz
IHdhbnQgdG8gcmV0dXJuIGZhbHNlCi0gICAgICAgICAgICBpZiAodmlldyAmJiBzY3JvbGxhYmxl
QXJlYSA9PSB2aWV3ICYmIHZpZXctPnBsYXRmb3JtV2lkZ2V0KCkpCi0gICAgICAgICAgICAgICAg
ZGlkSGFuZGxlV2hlZWxFdmVudCA9IGZhbHNlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBt
X2lzSGFuZGxpbmdXaGVlbEV2ZW50ID0gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gZGlkSGFu
ZGxlV2hlZWxFdmVudDsKKyAgICAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwor
CisgICAgICAgIC8vIFdlYktpdDIgY29kZSBwYXRoCisgICAgICAgIGlmICghZnJhbWVIYXNQbGF0
Zm9ybVdpZGdldChtX2ZyYW1lKSAmJiAhbGF0Y2hpbmdTdGF0ZS0+c3RhcnRlZEdlc3R1cmVBdFNj
cm9sbExpbWl0KCkgJiYgc2Nyb2xsYWJsZUNvbnRhaW5lciA9PSBsYXRjaGluZ1N0YXRlLT5zY3Jv
bGxhYmxlQ29udGFpbmVyKCkgJiYgc2Nyb2xsYWJsZUFyZWEgJiYgdmlldyAhPSBzY3JvbGxhYmxl
QXJlYSkgeworICAgICAgICAgICAgLy8gSWYgd2UgZGlkIG5vdCBzdGFydCBhdCB0aGUgc2Nyb2xs
IGxpbWl0LCBkbyBub3QgcGFzcyB0aGUgZXZlbnQgb24gdG8gYmUgaGFuZGxlZCBieSBlbmNsb3Np
bmcgc2Nyb2xsYWJsZSByZWdpb25zLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiAhbGF0Y2hpbmdTdGF0
ZS0+c3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KCkgJiYgc2Nyb2xsYWJsZUNvbnRhaW5lciA9
PSBsYXRjaGluZ1N0YXRlLT5zY3JvbGxhYmxlQ29udGFpbmVyKCkpIHsKLSAgICAgICAgICAgIG1f
aXNIYW5kbGluZ1doZWVsRXZlbnQgPSBmYWxzZTsKIAotICAgICAgICAgICAgaWYgKGV2ZW50VGFy
Z2V0SXNQbGF0Zm9ybVdpZGdldCh3aGVlbEV2ZW50VGFyZ2V0KSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gIWxhdGNoaW5nU3RhdGUtPnN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCgpOworICAg
ICAgICBpZiAoIWxhdGNoaW5nU3RhdGUtPnN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCgpKQor
ICAgICAgICAgICAgdmlldyA9IGZyYW1lVmlld0ZvckxhdGNoaW5nU3RhdGUobV9mcmFtZSwgbGF0
Y2hpbmdTdGF0ZSk7CiAKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBib29sIGRp
ZEhhbmRsZVdoZWVsRXZlbnQgPSB2aWV3ICYmIHZpZXctPndoZWVsRXZlbnQod2hlZWxFdmVudCk7
CisgICAgICAgIGlmIChzY3JvbGxhYmxlQ29udGFpbmVyID09IGxhdGNoaW5nU3RhdGUtPnNjcm9s
bGFibGVDb250YWluZXIoKSkgeworICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGp1c3Qgc3RhcnRp
bmcgYSBzY3JvbGwgZXZlbnQsIGFuZCBoYXZlIG5vd2hlcmUgbGVmdCB0byBzY3JvbGwsIGFsbG93
CisgICAgICAgICAgICAvLyB0aGUgZW5jbG9zaW5nIGZyYW1lIHRvIGhhbmRsZSB0aGUgc2Nyb2xs
LgorICAgICAgICAgICAgZGlkSGFuZGxlV2hlZWxFdmVudCA9ICFsYXRjaGluZ1N0YXRlLT5zdGFy
dGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoKTsKICAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRo
ZSBwbGF0Zm9ybSB3aWRnZXQgaXMgaGFuZGxpbmcgdGhlIGV2ZW50LCB3ZSBhbHdheXMgd2FudCB0
byByZXR1cm4gZmFsc2UKKyAgICAgICAgaWYgKHZpZXcgJiYgc2Nyb2xsYWJsZUFyZWEgPT0gdmll
dyAmJiB2aWV3LT5wbGF0Zm9ybVdpZGdldCgpKQorICAgICAgICAgICAgZGlkSGFuZGxlV2hlZWxF
dmVudCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZl
bnQ7CiAgICAgfQogICAgIAogICAgIGJvb2wgZGlkSGFuZGxlRXZlbnQgPSB2aWV3ID8gdmlldy0+
d2hlZWxFdmVudCh3aGVlbEV2ZW50KSA6IGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAJKHJldmlzaW9u
IDE4MTg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5n
U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgU2Nyb2xsTGF0
Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXQKICAgICBtX3dpZGdldElzTGF0Y2hlZCA9IGlzT3Zl
cldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1doZWVs
U2Nyb2xsZWRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgU2Nyb2xs
TGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQdHI8RWxl
bWVudD4mJiBlbGVtZW50KQogewogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCA9
IGVsZW1lbnQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCShyZXZpc2lvbiAxODE4NjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJv
b2wgaXNPdmVyV2lkZ2V0KTsKIAogICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVs
ZW1lbnQoKSB7IHJldHVybiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0K
LSAgICB2b2lkIHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7CisgICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxF
bGVtZW50PiYmKTsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVy
KCkgeyByZXR1cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRT
Y3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4pOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgJKHJldmlzaW9uIDE4
MTg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBib29sIHVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSBjb25zdAogICAgICAgICB7CiAgICAg
ICAgICAgICByZXR1cm4gbV9waGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHx8
IG1fcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2VkCi0gICAgICAgICAgICAg
ICAgfHwgbV9tb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwg
bV9tb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZDsKKyAgICAg
ICAgICAgICAgICB8fCBtX21vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VC
ZWdhbiB8fCBtX21vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2Vk
CisgICAgICAgICAgICAgICAgfHwgKG1fcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VF
bmRlZCAmJiBtX21vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsK
ICAgICAgICAgfQogICAgICAgICBib29sIHNob3VsZENvbnNpZGVyTGF0Y2hpbmcoKSBjb25zdAog
ICAgICAgICB7Cg==
</data>
<flag name="review"
          id="274076"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>