<?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>45149</bug_id>
          
          <creation_ts>2010-09-02 16:14:53 -0700</creation_ts>
          <short_desc>[Qt] V8 port for Qt platform: Qt WebCoreSupport changes</short_desc>
          <delta_ts>2010-09-11 16:07:25 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45136</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vlad">vladbph</reporter>
          <assigned_to name="QtWebKit Unassigned">webkit-qt-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>christian.webkit</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273653</commentid>
    <comment_count>0</comment_count>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-02 16:14:53 -0700</bug_when>
    <thetext>V8 changes in
WebCoreSupport/FrameLoaderClientQt.cpp
WebCoreSupport/FrameLoaderClientQt.h
WebCoreSupport/DumpRenderTreeSupportQt.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273699</commentid>
    <comment_count>1</comment_count>
      <attachid>66444</attachid>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-02 17:50:41 -0700</bug_when>
    <thetext>Created attachment 66444
QT WebCoreSupport changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273858</commentid>
    <comment_count>2</comment_count>
      <attachid>66444</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-03 03:56:15 -0700</bug_when>
    <thetext>Comment on attachment 66444
QT WebCoreSupport changes

&gt; +#if USE(JSC)
&gt;      return JSDOMWindowBase::commonJSGlobalData()-&gt;heap.globalObjectCount();
&gt; +#else
&gt; +    // TBD
&gt; +    return 1;
&gt; +#endif

What&apos;s the plan for this?

&gt; +#if 0

For disabled code blocks (and workarounds like the above), please include a comment saying why it&apos;s disabled (and if applicable, a bug# where we track any dependencies of the disabled code.)

This patch then digresses into style cleanups. While nice, please do that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274090</commentid>
    <comment_count>3</comment_count>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-03 11:56:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
There is no such API in v8 AFAIK
&gt; (From update of attachment 66444 [details])
&gt; &gt; +#if USE(JSC)
&gt; &gt;      return JSDOMWindowBase::commonJSGlobalData()-&gt;heap.globalObjectCount();
&gt; &gt; +#else
&gt; &gt; +    // TBD
&gt; &gt; +    return 1;
&gt; &gt; +#endif
&gt; 
&gt; What&apos;s the plan for this?
&gt; 
Has to be enabled. #if 0 removed.
&gt; &gt; +#if 0
&gt; 
&gt; For disabled code blocks (and workarounds like the above), please include a comment saying why it&apos;s disabled (and if applicable, a bug# where we track any dependencies of the disabled code.)
&gt; 
&gt; This patch then digresses into style cleanups. While nice, please do that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274319</commentid>
    <comment_count>4</comment_count>
      <attachid>66578</attachid>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-03 18:26:41 -0700</bug_when>
    <thetext>Created attachment 66578
Review comments changes

Changed 
#if USE(JSC)
...
#elif USE(V8)
...
#endif
Enabled garbageCollectorCollect() v8 implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274458</commentid>
    <comment_count>5</comment_count>
      <attachid>66578</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-05 17:10:05 -0700</bug_when>
    <thetext>Comment on attachment 66578
Review comments changes

&gt; +        Comment out references to JSC.

This isn&apos;t a very accurate summary of the changes below.

Patch contents are looking pretty good though like I&apos;ve said before I&apos;d personally prefer it without all the unrelated style fixups.
FIXME&apos;s are acceptable at this stage IMO, but for longer-term things there should be bugs opened and referenced in the code.

r- for lack of relevant ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275843</commentid>
    <comment_count>6</comment_count>
      <attachid>66578</attachid>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-09-08 08:14:31 -0700</bug_when>
    <thetext>Comment on attachment 66578
Review comments changes

&gt;  void DumpRenderTreeSupportQt::garbageCollectorCollect()
&gt;  {
&gt; +#if USE(JSC)
&gt;      gcController().garbageCollectNow();
&gt; +#elif USE(V8)
&gt; +    v8::Local&lt;v8::Context&gt; context = v8::Context::GetCurrent();
&gt; +    Frame* frame = V8Proxy::retrieveFrame(context);
&gt; +    V8Proxy* proxy = V8Proxy::retrieve(frame);
&gt; +    if (proxy)
&gt; +        proxy-&gt;evaluate(ScriptSourceCode(&quot;if (window.gc) void(gc());&quot;), 0);
&gt; +#endif
&gt;  }

You can call v8::LowMemoryNotification() instead (it calls an internal CollectAllGarbage() function).

And please please get rid of all the style changes; you can disregard anything the style checker complains about for lines that _you_ didn&apos;t touch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277739</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-11 10:44:37 -0700</bug_when>
    <thetext>Committed r67304: &lt;http://trac.webkit.org/changeset/67304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277793</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-11 16:07:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67304 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66444</attachid>
            <date>2010-09-02 17:50:41 -0700</date>
            <delta_ts>2010-09-03 18:26:52 -0700</delta_ts>
            <desc>QT WebCoreSupport changes</desc>
            <filename>v8_qt_webcoresupport.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Vlad">vladbph</attacher>
            
              <data encoding="base64"></data>
<flag name="review"
          id="55474"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66578</attachid>
            <date>2010-09-03 18:26:41 -0700</date>
            <delta_ts>2010-09-08 08:14:31 -0700</delta_ts>
            <desc>Review comments changes</desc>
            <filename>v8_qt_webcoresupport.patch</filename>
            <type>text/plain</type>
            <size>16240</size>
            <attacher name="Vlad">vladbph</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvcXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiA2NjczNSkNCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpDQpAQCAtMSwzICsxLDM4IEBADQorMjAxMC0wOS0wMyAgVmxhZCBCdXJsaWsgIDx2b2xv
ZGltaXIuYnVybGlrQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbUXRdIFY4IHBvcnQgZm9yIFF0IHBsYXRmb3JtOiBRdCBXZWJDb3Jl
U3VwcG9ydCBjaGFuZ2VzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUxNDkKKworICAgICAgICBDb21tZW50IG91dCByZWZlcmVuY2VzIHRvIEpTQy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoK
KyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpqYXZhU2NyaXB0T2JqZWN0c0NvdW50
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpnYXJiYWdlQ29sbGVjdG9yQ29s
bGVjdCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Z2FyYmFnZUNvbGxlY3Rv
ckNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6ZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoZHJ0RGVzY3JpcHRpb25T
dWl0YWJsZUZvclRlc3RSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRRdDo6RnJhbWVMb2FkZXJDbGllbnRRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
ckNsaWVudFF0OjpoYXNXZWJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmRpZENyZWF0ZVNjcmlwdENvbnRleHRGb3JGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaWREZXN0cm95U2NyaXB0Q29udGV4dEZvckZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZENyZWF0ZUlzb2xhdGVk
U2NyaXB0Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpm
aW5pc2hlZExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6
dXNlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3Bh
dGNoRGlkUmVjZWl2ZUljb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRR
dDo6ZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6dXBkYXRlR2xvYmFsSGlzdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpjb21taXR0ZWRMb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZURvY3VtZW50TG9hZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRvd25sb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoRGlkRmFpbExvYWRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hDcmVh
dGVQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6Om9iamVjdENv
bnRlbnRUeXBlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
Lmg6CisKIDIwMTAtMDktMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHANCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCShy
ZXZpc2lvbiA2NjczNSkNCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjEsNiArMjEsNyBAQA0KICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmgiCiAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKQEAgLTM0LDEy
ICszNSwxNyBAQA0KICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpZiBVU0UoSlNDKQogI2luY2x1ZGUg
IkdDQ29udHJvbGxlci5oIgorI2VsaWYgVVNFKFY4KQorI2luY2x1ZGUgIlY4R0NDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24u
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCiAjaW5jbHVkZSAiR2VvcG9z
aXRpb24uaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUl0ZW0uaCIKLSNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtNTcsOCArNjMsNiBAQA0KICNlbmRpZgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgotI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgotCiAjaW5jbHVkZSAicXdlYmVsZW1lbnQuaCIKICNpbmNsdWRl
ICJxd2ViZnJhbWUuaCIKICNpbmNsdWRlICJxd2ViZnJhbWVfcC5oIgpAQCAtNjcsNiArNzEsNyBA
QA0KICNpbmNsdWRlICJxd2VicGFnZS5oIgogI2luY2x1ZGUgInF3ZWJwYWdlX3AuaCIKICNpbmNs
dWRlICJxd2Vic2NyaXB0d29ybGQuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTI5NiwxNyArMzAxLDM1IEBADQogCiBpbnQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmphdmFTY3JpcHRPYmplY3RzQ291bnQoKQogeworI2lm
IFVTRShKU0MpCiAgICAgcmV0dXJuIEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRh
KCktPmhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKTsKKyNlbGlmIFVTRShWOCkKKyAgICAvLyBGSVhN
RTogaG93IHRvIGdldCBudW1iZXIgb2Ygb2JqZWN0cyBpbiB2OAorICAgIHJldHVybiAxOworI2Vu
ZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmdhcmJhZ2VDb2xsZWN0b3JD
b2xsZWN0KCkKIHsKKyNpZiBVU0UoSlNDKQogICAgIGdjQ29udHJvbGxlcigpLmdhcmJhZ2VDb2xs
ZWN0Tm93KCk7CisjZWxpZiBVU0UoVjgpCisgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250
ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBWOFBy
b3h5OjpyZXRyaWV2ZUZyYW1lKGNvbnRleHQpOworICAgIFY4UHJveHkqIHByb3h5ID0gVjhQcm94
eTo6cmV0cmlldmUoZnJhbWUpOworICAgIGlmIChwcm94eSkKKyAgICAgICAgcHJveHktPmV2YWx1
YXRlKFNjcmlwdFNvdXJjZUNvZGUoImlmICh3aW5kb3cuZ2MpIHZvaWQoZ2MoKSk7IiksIDApOwor
I2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmdhcmJhZ2VDb2xsZWN0
b3JDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWQoYm9vbCB3YWl0VW50aWxEb25lKQogeworI2lmIFVT
RShKU0MpCiAgICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVh
ZEZvckRlYnVnZ2luZyh3YWl0VW50aWxEb25lKTsKKyNlbGlmIFVTRShWOCkKKyAgICAvLyBGSVhN
RTogZmluZCBvdXQgaG93IHRvIGRvIGl0IGZvciB2OAorICAgIGdhcmJhZ2VDb2xsZWN0b3JDb2xs
ZWN0KCk7CisjZW5kaWYKIH0KIAogLy8gUmV0dXJucyB0aGUgdmFsdWUgb2YgY291bnRlciBpbiB0
aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgXGEgaWQuCkBAIC02NzAsOCArNjkzLDE2IEBADQogCiAg
ICAgU2NyaXB0Q29udHJvbGxlciogcHJveHkgPSBjb3JlRnJhbWUtPnNjcmlwdCgpOwogCi0gICAg
aWYgKHByb3h5KQotICAgICAgICBwcm94eS0+ZXhlY3V0ZVNjcmlwdEluV29ybGQoc2NyaXB0V29y
bGQtPndvcmxkKCksIHNjcmlwdCwgdHJ1ZSk7CisgICAgaWYgKCFwcm94eSkKKyAgICAgICAgcmV0
dXJuOyAgICAgCisjaWYgVVNFKEpTQykKKyAgICBwcm94eS0+ZXhlY3V0ZVNjcmlwdEluV29ybGQo
c2NyaXB0V29ybGQtPndvcmxkKCksIHNjcmlwdCwgdHJ1ZSk7CisjZWxpZiBVU0UoVjgpCisgICAg
U2NyaXB0U291cmNlQ29kZSBzb3VyY2Uoc2NyaXB0KTsKKyAgICBWZWN0b3I8U2NyaXB0U291cmNl
Q29kZT4gc291cmNlczsKKyAgICBzb3VyY2VzLmFwcGVuZChzb3VyY2UpOworICAgIHByb3h5LT5l
dmFsdWF0ZUluSXNvbGF0ZWRXb3JsZCgwLCBzb3VyY2VzLCB0cnVlKTsKKyNlbmRpZgogfQogCiBi
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojppc1BhZ2VCb3hWaXNpYmxlKFFXZWJGcmFtZSog
ZnJhbWUsIGludCBwYWdlSW5kZXgpCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHJldmlzaW9uIDY2NzM1KQ0KKysrIFdlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5
KQ0KQEAgLTMxLDYyICszMSw2NSBAQA0KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgorCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgiCi0jaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZy
YW1lVmlldy5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiSFRNTEFw
cGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MUGx1Z0luRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCisjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisjaWYgVVNFKEpTQykK
ICNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKKyNlbGlmIFVTRShWOCkKKyNpbmNsdWRlICJW
OERPTVdpbmRvdy5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIk1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGF0YS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jl
c3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhhbmRsZXIuaCIKKyNpbmNsdWRl
ICJRV2ViUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlSW50ZXJuYWwuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2lu
Y2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVFRQUGFyc2Vycy5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUU5ldHdvcmtSZXBseUhh
bmRsZXIuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCi0jaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFN0cmluZy5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKLQotI2luY2x1ZGUg
InF3ZWJwYWdlLmgiCi0jaW5jbHVkZSAicXdlYnBhZ2VfcC5oIgogI2luY2x1ZGUgInF3ZWJmcmFt
ZS5oIgogI2luY2x1ZGUgInF3ZWJmcmFtZV9wLmgiCisjaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5o
IgogI2luY2x1ZGUgInF3ZWJoaXN0b3J5aW50ZXJmYWNlLmgiCisjaW5jbHVkZSAicXdlYnBhZ2Uu
aCIKKyNpbmNsdWRlICJxd2VicGFnZV9wLmgiCiAjaW5jbHVkZSAicXdlYnBsdWdpbmZhY3Rvcnku
aCIKLQotI2luY2x1ZGUgPHFmaWxlaW5mby5oPgotCiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlv
bj4KICNpbmNsdWRlIDxRRGVidWc+CiAjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+CiAjaW5jbHVk
ZSA8UUdyYXBoaWNzV2lkZ2V0PgorI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8
UU5ldHdvcmtSZXF1ZXN0PgotI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UVN0
cmluZ0xpc3Q+Ci0jaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUgPHFmaWxlaW5m
by5oPgogCisKIHN0YXRpYyBRTWFwPHVuc2lnbmVkIGxvbmcsIFFTdHJpbmc+IGR1bXBBc3NpZ25l
ZFVybHM7CiAKIC8vIENvbXBhcmUgd2l0aCBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RnJhbWVMb2FkRGVsZWdhdGUubW0KLXN0YXRpYyBRU3RyaW5nIGRydERlc2NyaXB0aW9uU3VpdGFi
bGVGb3JUZXN0UmVzdWx0KFdlYkNvcmU6OkZyYW1lKiBfZnJhbWUpCitzdGF0aWMgUVN0cmluZyBk
cnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChXZWJDb3JlOjpGcmFtZSogYWZyYW1l
KQogewotICAgIFFXZWJGcmFtZSogZnJhbWUgPSBRV2ViRnJhbWVQcml2YXRlOjpraXQoX2ZyYW1l
KTsKKyAgICBRV2ViRnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGFmcmFtZSk7
CiAgICAgUVN0cmluZyBuYW1lID0gZnJhbWUtPmZyYW1lTmFtZSgpOwogCiAgICAgYm9vbCBpc01h
aW5GcmFtZSA9IGZyYW1lID09IGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpOwpAQCAtOTQsMTkg
Kzk3LDE4IEBADQogICAgICAgICBpZiAoIW5hbWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIFFTdHJpbmc6OmZyb21MYXRpbjEoIm1haW4gZnJhbWUgXCIlMVwiIikuYXJnKG5hbWUpOwog
ICAgICAgICByZXR1cm4gUUxhdGluMVN0cmluZygibWFpbiBmcmFtZSIpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gUVN0cmlu
Zzo6ZnJvbUxhdGluMSgiZnJhbWUgXCIlMVwiIikuYXJnKG5hbWUpOwotICAgICAgICByZXR1cm4g
UUxhdGluMVN0cmluZygiZnJhbWUgKGFub255bW91cykiKTsKICAgICB9CisgICAgaWYgKCFuYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFFTdHJpbmc6OmZyb21MYXRpbjEoImZyYW1lIFwi
JTFcIiIpLmFyZyhuYW1lKTsKKyAgICByZXR1cm4gUUxhdGluMVN0cmluZygiZnJhbWUgKGFub255
bW91cykiKTsKIH0KIAotc3RhdGljIFFTdHJpbmcgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQoY29uc3QgV2ViQ29yZTo6S1VSTCYgX3VybCkKK3N0YXRpYyBRU3RyaW5nIGRydERl
c2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OktVUkwmIGF1cmwp
CiB7Ci0gICAgaWYgKF91cmwuaXNFbXB0eSgpIHx8ICFfdXJsLmlzTG9jYWxGaWxlKCkpCi0gICAg
ICAgIHJldHVybiBfdXJsLnN0cmluZygpOworICAgIGlmIChhdXJsLmlzRW1wdHkoKSB8fCAhYXVy
bC5pc0xvY2FsRmlsZSgpKQorICAgICAgICByZXR1cm4gYXVybC5zdHJpbmcoKTsKICAgICAvLyBS
ZW1vdmUgdGhlIGxlYWRpbmcgcGF0aCBmcm9tIGZpbGUgdXJscwotICAgIHJldHVybiBRU3RyaW5n
KF91cmwuc3RyaW5nKCkpLnJlcGxhY2UoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrc1BhdGgsICIiKS5taWQoMSk7CisgICAgcmV0dXJuIFFTdHJp
bmcoYXVybC5zdHJpbmcoKSkucmVwbGFjZShXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpk
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzUGF0aCwgIiIpLm1pZCgxKTsKIH0KIAogc3RhdGljIFFT
dHJpbmcgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC0xNTAsOCArMTUyLDcgQEANCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotbmFtZXNwYWNlIFdlYkNvcmUKLXsKK25hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ym9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3MgPSBmYWxz
ZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9
IGZhbHNlOwpAQCAtMTkxLDcgKzE5Miw3IEBADQogICAgICwgbV9maXJzdERhdGEoZmFsc2UpCiAg
ICAgLCBtX3BsdWdpblZpZXcoMCkKICAgICAsIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4oZmFs
c2UpCi0gICAgLCBtX2xvYWRFcnJvciAoUmVzb3VyY2VFcnJvcigpKQorICAgICwgbV9sb2FkRXJy
b3IoUmVzb3VyY2VFcnJvcigpKQogewogfQogCkBAIC0yMzUsNyArMjM2LDcgQEANCiAKIGJvb2wg
RnJhbWVMb2FkZXJDbGllbnRRdDo6aGFzV2ViVmlldygpIGNvbnN0CiB7Ci0gICAgLy9ub3RJbXBs
ZW1lbnRlZCgpOworICAgIC8vIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTM1NSw2ICszNTYsMTggQEANCiAgICAgbV93ZWJGcmFtZS0+cGFnZSgpLT5kLT51cGRh
dGVOYXZpZ2F0aW9uQWN0aW9ucygpOwogfQogCisjaWYgVVNFKFY4KQordm9pZCBGcmFtZUxvYWRl
ckNsaWVudFF0OjpkaWRDcmVhdGVTY3JpcHRDb250ZXh0Rm9yRnJhbWUoKQoreworfQordm9pZCBG
cmFtZUxvYWRlckNsaWVudFF0OjpkaWREZXN0cm95U2NyaXB0Q29udGV4dEZvckZyYW1lKCkKK3sK
K30KK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlkQ3JlYXRlSXNvbGF0ZWRTY3JpcHRDb250
ZXh0KCkKK3sKK30KKyNlbmRpZgorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNo
RGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpCiB7CiAgICAgaWYgKGR1bXBGcmFtZUxvYWRlckNhbGxi
YWNrcykKQEAgLTU4MCwxMyArNTkzLDEyIEBADQogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpm
aW5pc2hlZExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICBpZiAoIW1fcGx1
Z2luVmlldykgewotICAgICAgICBpZihtX2ZpcnN0RGF0YSkgewotICAgICAgICAgICAgRnJhbWVM
b2FkZXIgKmZsID0gbG9hZGVyLT5mcmFtZUxvYWRlcigpOworICAgICAgICBpZiAobV9maXJzdERh
dGEpIHsKKyAgICAgICAgICAgIEZyYW1lTG9hZGVyKiBmbCA9IGxvYWRlci0+ZnJhbWVMb2FkZXIo
KTsKICAgICAgICAgICAgIGZsLT53cml0ZXIoKS0+c2V0RW5jb2RpbmcobV9yZXNwb25zZS50ZXh0
RW5jb2RpbmdOYW1lKCksIGZhbHNlKTsKICAgICAgICAgICAgIG1fZmlyc3REYXRhID0gZmFsc2U7
IAogICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgeworICAgIH0gZWxzZSB7CiAgICAgICAgIGlm
IChtX3BsdWdpblZpZXctPmlzUGx1Z2luVmlldygpKQogICAgICAgICAgICAgbV9wbHVnaW5WaWV3
LT5kaWRGaW5pc2hMb2FkaW5nKCk7CiAgICAgICAgIG1fcGx1Z2luVmlldyA9IDA7CkBAIC02NjMs
MTcgKzY3NSwxNSBAQA0KIAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnVzZXJBZ2VudChj
b25zdCBLVVJMJiB1cmwpCiB7Ci0gICAgaWYgKG1fd2ViRnJhbWUpIHsKKyAgICBpZiAobV93ZWJG
cmFtZSkKICAgICAgICAgcmV0dXJuIG1fd2ViRnJhbWUtPnBhZ2UoKS0+dXNlckFnZW50Rm9yVXJs
KHVybCk7Ci0gICAgfQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFF0OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKCkKIHsKLSAgICBpZiAobV93ZWJGcmFt
ZSkgeworICAgIGlmIChtX3dlYkZyYW1lKQogICAgICAgICBlbWl0IG1fd2ViRnJhbWUtPmljb25D
aGFuZ2VkKCk7Ci0gICAgfQogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmZyYW1lTG9h
ZGVyRGVzdHJveWVkKCkKQEAgLTY5NSw5ICs3MDUsOCBAQA0KICAgICBpZiAod29ybGQgIT0gbWFp
blRocmVhZE5vcm1hbFdvcmxkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3dlYkZy
YW1lKSB7CisgICAgaWYgKG1fd2ViRnJhbWUpCiAgICAgICAgIGVtaXQgbV93ZWJGcmFtZS0+amF2
YVNjcmlwdFdpbmRvd09iamVjdENsZWFyZWQoKTsKLSAgICB9CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRRdDo6ZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkKQEAgLTcxOSw3ICs3MjgsNyBA
QA0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojp1cGRhdGVHbG9iYWxIaXN0b3J5KCkKIHsK
LSAgICBRV2ViSGlzdG9yeUludGVyZmFjZSAqaGlzdG9yeSA9IFFXZWJIaXN0b3J5SW50ZXJmYWNl
OjpkZWZhdWx0SW50ZXJmYWNlKCk7CisgICAgUVdlYkhpc3RvcnlJbnRlcmZhY2UqIGhpc3Rvcnkg
PSBRV2ViSGlzdG9yeUludGVyZmFjZTo6ZGVmYXVsdEludGVyZmFjZSgpOwogICAgIGlmIChoaXN0
b3J5KQogICAgICAgICBoaXN0b3J5LT5hZGRIaXN0b3J5RW50cnkobV9mcmFtZS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCktPnVybEZvckhpc3RvcnkoKS5wcmV0dHlVUkwoKSk7CiB9CkBAIC03
OTIsNyArODAxLDcgQEANCiAgICAgaWYgKCFtX3BsdWdpblZpZXcpIHsKICAgICAgICAgaWYgKCFt
X2ZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBGcmFtZUxvYWRlciAqZmwgPSBs
b2FkZXItPmZyYW1lTG9hZGVyKCk7CisgICAgICAgIEZyYW1lTG9hZGVyKiBmbCA9IGxvYWRlci0+
ZnJhbWVMb2FkZXIoKTsKICAgICAgICAgaWYgKG1fZmlyc3REYXRhKSB7CiAgICAgICAgICAgICBm
bC0+d3JpdGVyKCktPnNldEVuY29kaW5nKG1fcmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpLCBm
YWxzZSk7CiAgICAgICAgICAgICBtX2ZpcnN0RGF0YSA9IGZhbHNlOwpAQCAtODg1LDcgKzg5NCwx
MiBAQA0KICAgICAgICAgLy8gVXNlIHRoZSBkZWZhdWx0IHRpbWVvdXQgaW50ZXJ2YWwgZm9yIEpT
IGFzIHRoZSBIVE1MIHRva2VuaXplciBkZWxheS4gVGhpcyBlbnN1cmVzCiAgICAgICAgIC8vIHRo
YXQgbG9uZy1ydW5uaW5nIEphdmFTY3JpcHQgd2lsbCBzdGlsbCBhbGxvdyBzZXRIdG1sKCkgdG8g
YmUgc3luY2hyb25vdXMsIHdoaWxlCiAgICAgICAgIC8vIHN0aWxsIGdpdmluZyBhIHJlYXNvbmFi
bGUgdGltZW91dCB0byBwcmV2ZW50IGRlYWRsb2NrLgorI2lmIFVTRShKU0MpCiAgICAgICAgIGRv
dWJsZSBkZWxheSA9IEpTRE9NV2luZG93QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPnRpbWVv
dXRDaGVja2VyLnRpbWVvdXRJbnRlcnZhbCgpIC8gMTAwMC4wZjsKKyNlbGlmIFVTRShWOCkKKyAg
ICAgICAgLy8gRklYTUU6IEhhcmRjb2RlIGZvciBub3cKKyAgICAgICAgZG91YmxlIGRlbGF5ID0g
MTAwMDAgLyAxMDAwLjBmOworI2VuZGlmCiAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+c2V0Q3Vz
dG9tSFRNTFRva2VuaXplclRpbWVEZWxheShkZWxheSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1f
ZnJhbWUtPnBhZ2UoKS0+c2V0Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSgtMSk7CkBAIC05
MDAsNyArOTE0LDcgQEANCiAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIGhhbmRsZXIgPSBoYW5k
bGUtPmdldEludGVybmFsKCktPm1fam9iOwogICAgIFFOZXR3b3JrUmVwbHkqIHJlcGx5ID0gaGFu
ZGxlci0+cmVsZWFzZSgpOwogICAgIGlmIChyZXBseSkgewotICAgICAgICBRV2ViUGFnZSAqcGFn
ZSA9IG1fd2ViRnJhbWUtPnBhZ2UoKTsKKyAgICAgICAgUVdlYlBhZ2UqIHBhZ2UgPSBtX3dlYkZy
YW1lLT5wYWdlKCk7CiAgICAgICAgIGlmIChwYWdlLT5mb3J3YXJkVW5zdXBwb3J0ZWRDb250ZW50
KCkpCiAgICAgICAgICAgICBlbWl0IHBhZ2UtPnVuc3VwcG9ydGVkQ29udGVudChyZXBseSk7CiAg
ICAgICAgIGVsc2UKQEAgLTkzNSw3ICs5NDksNyBAQA0KICAgICAgICAgICBuZXdSZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChzZW5kUmVxdWVzdENsZWFySGVhZGVycy5hdChpKS50b0xvY2FsOEJp
dCgpLmNvbnN0RGF0YSgpLCBRU3RyaW5nKCkpOwogCiAgICAgLy8gc2VlbXMgbGlrZSB0aGUgTWFj
IGNvZGUgZG9lc24ndCBkbyBhbnl0aGluZyBoZXJlIGJ5IGRlZmF1bHQgbmVpdGhlcgotICAgIC8v
cURlYnVnKCkgPDwgIkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0
IiA8PCByZXF1ZXN0LmlzTnVsbCgpIDw8IHJlcXVlc3QudXJsKCkuc3RyaW5nYCgpOworICAgIC8v
IHFEZWJ1ZygpIDw8ICJGcmFtZUxvYWRlckNsaWVudFF0OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVz
dCIgPDwgcmVxdWVzdC5pc051bGwoKSA8PCByZXF1ZXN0LnVybCgpLnN0cmluZ2AoKTsKIH0KIAog
Ym9vbApAQCAtOTkxLDcgKzEwMDUsNyBAQA0KICAgICAgICAgICAgICAgIHFQcmludGFibGUoZHJ0
RGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoZXJyb3IpKSk7CiAKICAgICBpZiAobV9m
aXJzdERhdGEpIHsKLSAgICAgICAgRnJhbWVMb2FkZXIgKmZsID0gbG9hZGVyLT5mcmFtZUxvYWRl
cigpOworICAgICAgICBGcmFtZUxvYWRlciogZmwgPSBsb2FkZXItPmZyYW1lTG9hZGVyKCk7CiAg
ICAgICAgIGZsLT53cml0ZXIoKS0+c2V0RW5jb2RpbmcobV9yZXNwb25zZS50ZXh0RW5jb2RpbmdO
YW1lKCksIGZhbHNlKTsKICAgICAgICAgbV9maXJzdERhdGEgPSBmYWxzZTsKICAgICB9CkBAIC0x
MDYxLDcgKzEwNzUsNyBAQA0KIHsKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJldHVy
biAwOwotICAgIFFXZWJQYWdlICpuZXdQYWdlID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5jcmVhdGVX
aW5kb3coUVdlYlBhZ2U6OldlYkJyb3dzZXJXaW5kb3cpOworICAgIFFXZWJQYWdlKiBuZXdQYWdl
ID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5jcmVhdGVXaW5kb3coUVdlYlBhZ2U6OldlYkJyb3dzZXJX
aW5kb3cpOwogICAgIGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJu
IG5ld1BhZ2UtPm1haW5GcmFtZSgpLT5kLT5mcmFtZTsKQEAgLTEyMTcsMTYgKzEyMzEsMTYgQEAN
CiAgICAgfQogfQogCi1PYmplY3RDb250ZW50VHlwZSBGcmFtZUxvYWRlckNsaWVudFF0OjpvYmpl
Y3RDb250ZW50VHlwZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgX21pbWVUeXBlKQor
T2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXJDbGllbnRRdDo6b2JqZWN0Q29udGVudFR5cGUo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGFtaW1lVHlwZSkKIHsKLS8vICAgIHFEZWJ1
ZygpPDwiICsrKysrKysrKysrKysrKysgdXJsIGlzICI8PHVybC5wcmV0dHlVUkwoKTw8IiwgbWlt
ZSA9ICI8PF9taW1lVHlwZTsKLSAgICBpZiAoX21pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0
LXBsdWdpbiIgfHwgX21pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0LXN0eWxlZC13aWRnZXQi
KQorLy8gICAgcURlYnVnKCk8PCIgKysrKysrKysrKysrKysrKyB1cmwgaXMgIjw8dXJsLnByZXR0
eVVSTCgpPDwiLCBtaW1lID0gIjw8IGFtaW1lVHlwZTsKKyAgICBpZiAoYW1pbWVUeXBlID09ICJh
cHBsaWNhdGlvbi94LXF0LXBsdWdpbiIgfHwgYW1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXF0
LXN0eWxlZC13aWRnZXQiKQogICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudE90aGVyUGx1Z2lu
OwogCi0gICAgaWYgKHVybC5pc0VtcHR5KCkgJiYgIV9taW1lVHlwZS5sZW5ndGgoKSkKKyAgICBp
ZiAodXJsLmlzRW1wdHkoKSAmJiAhYW1pbWVUeXBlLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4g
T2JqZWN0Q29udGVudE5vbmU7CiAKLSAgICBTdHJpbmcgbWltZVR5cGUgPSBfbWltZVR5cGU7Cisg
ICAgU3RyaW5nIG1pbWVUeXBlID0gYW1pbWVUeXBlOwogICAgIGlmICghbWltZVR5cGUubGVuZ3Ro
KCkpIHsKICAgICAgICAgUUZpbGVJbmZvIGZpKHVybC5wYXRoKCkpOwogICAgICAgICBtaW1lVHlw
ZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKGZpLnN1ZmZpeCgp
KTsKQEAgLTEyNjMsOCArMTI3Nyw3IEBADQogCiBjb25zdCB1bnNpZ25lZCBudW1xU3R5bGVTaGVl
dFByb3BlcnRpZXMgPSBzaXplb2YocXN0eWxlU2hlZXRQcm9wZXJ0aWVzKSAvIHNpemVvZihxc3R5
bGVTaGVldFByb3BlcnRpZXNbMF0pOwogCi1jbGFzcyBRdFBsdWdpbldpZGdldDogcHVibGljIFdp
ZGdldAoteworY2xhc3MgUXRQbHVnaW5XaWRnZXQ6IHB1YmxpYyBXaWRnZXQgewogcHVibGljOgog
ICAgIFF0UGx1Z2luV2lkZ2V0KFFXaWRnZXQqIHcgPSAwKTogV2lkZ2V0KHcpIHt9CiAgICAgflF0
UGx1Z2luV2lkZ2V0KCkKQEAgLTEzMjIsOCArMTMzNSw3IEBADQogfTsKIAogI2lmIFFUX1ZFUlNJ
T04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAwKQotY2xhc3MgUXRQbHVnaW5HcmFwaGljc1dp
ZGdldDogcHVibGljIFdpZGdldAoteworY2xhc3MgUXRQbHVnaW5HcmFwaGljc1dpZGdldDogcHVi
bGljIFdpZGdldCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxRdFBsdWdpbkdyYXBoaWNz
V2lkZ2V0PiBjcmVhdGUoUUdyYXBoaWNzV2lkZ2V0KiB3ID0gMCkKICAgICB7CkluZGV4OiBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkocmV2aXNp
b24gNjY3MzUpDQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIwOSw2ICsyMDksMTcgQEANCiAgICAgdmlydHVhbCB2
b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJm
b3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Q7CiAKKyNpZiBVU0UoVjgpCisgICAgLy8gQSBmcmFt
ZSdzIFY4IGNvbnRleHQgd2FzIGNyZWF0ZWQgb3IgZGVzdHJveWVkLgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDcmVhdGVTY3JpcHRDb250ZXh0Rm9yRnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RGVzdHJveVNjcmlwdENvbnRleHRGb3JGcmFtZSgpOworCisgICAgLy8gQSBjb250ZXh0IHVudGll
ZCB0byBhIGZyYW1lIHdhcyBjcmVhdGVkICh0aHJvdWdoIGV2YWx1YXRlSW5Jc29sYXRlZFdvcmxk
KS4KKyAgICAvLyBUaGlzIGNvbnRleHQgaXMgbm90IHRpZWQgdG8gdGhlIGxpZmV0aW1lIG9mIGl0
cyBmcmFtZSwgYW5kIGlzIGRlc3Ryb3llZAorICAgIC8vIGluIGdhcmJhZ2UgY29sbGVjdGlvbi4K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlSXNvbGF0ZWRTY3JpcHRDb250ZXh0KCk7CisjZW5k
aWYKKwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCk7
CiAKICAgICBRU3RyaW5nIGNob29zZUZpbGUoY29uc3QgUVN0cmluZyYgb2xkRmlsZSk7Cg==
</data>
<flag name="review"
          id="55628"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>