<?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>173866</bug_id>
          
          <creation_ts>2017-06-26 23:17:41 -0700</creation_ts>
          <short_desc>[GTK][WPE] Assertion failure in TimerBase inside WebCore::IconRecord::setImageData</short_desc>
          <delta_ts>2017-08-10 23:01: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>WebKit Misc.</component>
          <version>Safari Technology Preview</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cturner</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1323083</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-26 23:17:41 -0700</bug_when>
    <thetext>I&apos;m hitting assertions like the one below all the time when I run debug Safari:

ASSERTION FAILED: canAccessThreadLocalDataForThread(m_thread)
/Volumes/Data/webkit2/Source/WebCore/platform/Timer.cpp(214) : void WebCore::TimerBase::stop()
1   0x101a122ad WTFCrash
2   0x10cbaccfc WebCore::TimerBase::stop()
3   0x10cbacc57 WebCore::TimerBase::~TimerBase()
4   0x10a120a8d WebCore::Timer::~Timer()
5   0x10a120a25 WebCore::Timer::~Timer()
6   0x10b008051 WebCore::Image::~Image()
7   0x10a2e30e6 WebCore::BitmapImage::~BitmapImage()
8   0x10a2e3275 WebCore::BitmapImage::~BitmapImage()
9   0x10a2e3299 WebCore::BitmapImage::~BitmapImage()
10  0x10a2e861f WTF::RefCounted&lt;WebCore::Image&gt;::deref() const
11  0x10a2e85c5 void WTF::derefIfNotNull&lt;WebCore::Image&gt;(WebCore::Image*)
12  0x10a2e8583 WTF::RefPtr&lt;WebCore::Image&gt;::~RefPtr()
13  0x10a2e3235 WTF::RefPtr&lt;WebCore::Image&gt;::~RefPtr()
14  0x10a3285b3 WTF::RefPtr&lt;WebCore::Image&gt;&amp; WTF::RefPtr&lt;WebCore::Image&gt;::operator=&lt;WebCore::BitmapImage&gt;(WTF::Ref&lt;WebCore::BitmapImage&gt;&amp;&amp;)
15  0x10af121a3 WebCore::IconRecord::setImageData(WTF::RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;)
16  0x10aeed974 WebCore::IconDatabase::setIconDataForIconURL(WebCore::SharedBuffer*, WTF::String const&amp;)
17  0x104d90a7f WebKit::WebIconDatabase::setIconDataForIconURL(IPC::DataReference const&amp;, WTF::String const&amp;)
18  0x104d94e09 void IPC::callMemberFunctionImpl&lt;WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;), std::__1::tuple&lt;IPC::DataReference, WTF::String&gt;, 0ul, 1ul&gt;(WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;), std::__1::tuple&lt;IPC::DataReference, WTF::String&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt;)
19  0x104d94be8 void IPC::callMemberFunction&lt;WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;), std::__1::tuple&lt;IPC::DataReference, WTF::String&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt; &gt;(std::__1::tuple&lt;IPC::DataReference, WTF::String&gt;&amp;&amp;, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;))
20  0x104d93cbb void IPC::handleMessage&lt;Messages::WebIconDatabase::SetIconDataForIconURL, WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(IPC::DataReference const&amp;, WTF::String const&amp;))
21  0x104d938ad WebKit::WebIconDatabase::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
22  0x104d93fd4 non-virtual thunk to WebKit::WebIconDatabase::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
23  0x1047f5e4d IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
24  0x1050f2d84 WebKit::WebProcessPool::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
25  0x1051264ae WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
26  0x105126574 non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
27  0x1046ccc93 IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
28  0x1046c2228 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
29  0x1046cd290 IPC::Connection::dispatchOneMessage()
30  0x1046e563d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14::operator()()
31  0x1046e5599 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14&gt;::call()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323084</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-26 23:18:03 -0700</bug_when>
    <thetext>This seems like a very recent regression. I don&apos;t recall having this issue a week ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323090</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-27 00:03:26 -0700</bug_when>
    <thetext>Reproduces at r218700. Going back to r218500...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1323100</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-27 01:32:07 -0700</bug_when>
    <thetext>Hm... I still reproduce this at r218500 so maybe it&apos;s not a very recent regression. I&apos;m pretty certain it&apos;s not an old assertion though because I do recall being able to browser the Web with debug builds without hitting this before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325420</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-04 04:31:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/33122050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335775</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-06 05:25:23 -0700</bug_when>
    <thetext>*** Bug 173524 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335776</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-06 05:26:12 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Hm... I still reproduce this at r218500 so maybe it&apos;s not a very recent
&gt; regression.

I&apos;m hitting this too. I don&apos;t remember seeing it until recently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335783</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-06 08:45:56 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; Hm... I still reproduce this at r218500 so maybe it&apos;s not a very recent
&gt; regression. I&apos;m pretty certain it&apos;s not an old assertion though because I do
&gt; recall being able to browser the Web with debug builds without hitting this
&gt; before.

Ryosuke, I&apos;m curious under what configuration you&apos;re seeing this, because IconDatabase no longer exists in trunk WebKit for Mac/iOS.

Therefore... you shouldn&apos;t be seeing this with Debug Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335788</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-06 09:48:00 -0700</bug_when>
    <thetext>This bug is one month old, so I bet it doesn&apos;t affect Mac anymore. It&apos;s still causing tons of crashes for WebKitGTK+, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335845</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-06 17:08:42 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; This bug is one month old, so I bet it doesn&apos;t affect Mac anymore. It&apos;s
&gt; still causing tons of crashes for WebKitGTK+, though.

Oh yah whoops, I misread the month Ryosuke posted it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337319</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-09 23:00:48 -0700</bug_when>
    <thetext>Michael, are you sure you are still getting crashes? WebIconDatabase no longer exists, and I fixed the crash I could reproduce in r219861. If you are still getting crashes with current trunk I need a new backtrace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337326</commentid>
    <comment_count>11</comment_count>
      <attachid>317788</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-10 00:12:43 -0700</bug_when>
    <thetext>Created attachment 317788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337327</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 00:14:56 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337835</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-10 23:01:25 -0700</bug_when>
    <thetext>Committed r220580: &lt;http://trac.webkit.org/changeset/220580&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317788</attachid>
            <date>2017-08-10 00:12:43 -0700</date>
            <delta_ts>2017-08-10 08:27:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-icon-database-image-crash.diff</filename>
            <type>text/plain</type>
            <size>12445</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYTNkODg2MWJhZjAuLmRmZWRkYjJlNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI4IEBACisyMDE3LTA4LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFzc2VydGlvbiBmYWlsdXJlIGluIFRpbWVyQmFz
ZSBpbnNpZGUgV2ViQ29yZTo6SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM4NjYKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMzMTIyMDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEljb25EYXRhYmFzZSBjcmVhdGVzIGFuZCBkZXN0cm95cyBJY29uUmVjb3Jk
IG9iamVjdHMgaW4gYm90aCBkYXRhYmFzZSBhbmQgbWFpbiB0aHJlYWQuIElmIHRoZSBJY29uUmVj
b3JkIGhhcyBhCisgICAgICAgIHZhbGlkIGljb24sIGl0cyBJbWFnZSBjb3VsZCBiZSBjcmVhdGVk
IGluIG9uZSB0aHJlYWQgYW5kIGRlc3Ryb3llZCBpbiBhbm90aGVyLCBzb21ldGhpbmcgdGhhdCBp
cyBub3QgZXhwZWN0ZWQgdG8KKyAgICAgICAgaGFwcGVuLCBiZWNhdXNlIEltYWdlIGhhcyBhIFRp
bWVyIG1lbWJlci4gU2luY2Ugd2UgaGF2ZSBhbGwgdGhlIGRhdGEgYW5kIHdlIGFyZSBkZWNvZGlu
ZyBpdCByaWdodCBhZnRlciBjcmVhdGluZworICAgICAgICB0aGUgSW1hZ2UsIHdlIGRvbid0IHJl
YWxseSBuZWVkIHRvIGtlZXAgdGhlIEltYWdlIG9iamVjdCBhcm91bmQsIHdlIGNvdWxkIHNpbXBs
eSB0YWtlIGEgcmVmZXJlbmNlIG9mIHRoZSBlbmNvZGVkCisgICAgICAgIGRhdGEgYW5kIHRoZSBk
ZWNvZGVkIG5hdGl2ZSBpbWFnZSB0byBiZSByZXR1cm5lZCBieSBzeW5jaHJvbm91c0ljb25Gb3JQ
YWdlVVJMKCkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpJY29uUmVjb3JkOjppbWFnZSk6IFJl
dHVybiBOYXRpdmVJbWFnZVB0ciBub3cuCisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6
SWNvblJlY29yZDo6c2V0SW1hZ2VEYXRhKTogQ3JlYXRlIGEgQml0bWFwSW1hZ2UgdG8gZGVjb2Rl
IGl0IGFuZCBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZQorICAgICAgICBlbmNvZGVkIGRhdGEgYW5k
IGRlY29kZWQgbmF0aXZlIGltYWdlLgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6Oklj
b25SZWNvcmQ6OnNuYXBzaG90IGNvbnN0KTogVXNlIG1faW1hZ2VEYXRhIHRvIGdldCB0aGUgZW5j
b2RlZCBkYXRhLgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNv
bkZvclBhZ2VVUkwpOiBSZXR1cm4gdGhlIG5hdGl2ZSBpbWFnZSBhbmQgd2hldGhlciB0aGUgaWNv
biBpcyBrbm93biBvciBub3QuCisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6SWNvblJl
Y29yZDo6bG9hZEltYWdlRnJvbVJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChnZXRJY29uU3VyZmFjZVN5bmNo
cm9ub3VzbHkpOiBVc2UgbmV3IEFQSS4KKwogMjAxNy0wOC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQmVhY29uIEFQSSBvbiBXSzEgRFJUIGFu
ZCBXSzIgd2hlbiBub3QgdXNpbmcgTkVUV09SS19TRVNTSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCA1OThmYjc0YWUzMy4u
MjE3MGNkYzRjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
SWNvbkRhdGFiYXNlLmNwcApAQCAtMTA2LDM5ICsxMDYsMzcgQEAgSWNvbkRhdGFiYXNlOjpJY29u
UmVjb3JkOjp+SWNvblJlY29yZCgpCiAgICAgTE9HKEljb25EYXRhYmFzZSwgIkRlc3Ryb3lpbmcg
SWNvblJlY29yZCBmb3IgaWNvbiB1cmwgJXMiLCBtX2ljb25VUkwuYXNjaWkoKS5kYXRhKCkpOwog
fQogCi1JbWFnZSogSWNvbkRhdGFiYXNlOjpJY29uUmVjb3JkOjppbWFnZShjb25zdCBJbnRTaXpl
JikKK05hdGl2ZUltYWdlUHRyIEljb25EYXRhYmFzZTo6SWNvblJlY29yZDo6aW1hZ2UoY29uc3Qg
SW50U2l6ZSYpCiB7CiAgICAgLy8gRklYTUUgcmRhcjovLzQ2ODAzNzcgLSBGb3Igc2l6ZSByaWdo
dCBub3csIHdlIGFyZSByZXR1cm5pbmcgb3VyIG9uZSBhbmQgb25seSBpbWFnZSBhbmQgdGhlIEJy
aWRnZQogICAgIC8vIGlzIHJlc2l6aW5nIGl0IGluIHBsYWNlLiBXZSBuZWVkIHRvIGFjdHVhbGx5
IHN0b3JlIGFsbCB0aGUgb3JpZ2luYWwgcmVwcmVzZW50YXRpb25zIGhlcmUgYW5kIHJldHVybiBh
IG5hdGl2ZQogICAgIC8vIG9uZSwgb3IgcmVzaXplIHRoZSBiZXN0IG9uZSB0byB0aGUgcmVxdWVz
dGVkIHNpemUgYW5kIGNhY2hlIHRoYXQgcmVzdWx0LgotICAgIHJldHVybiBtX2ltYWdlLmdldCgp
OworICAgIHJldHVybiBtX2ltYWdlOwogfQogCiB2b2lkIEljb25EYXRhYmFzZTo6SWNvblJlY29y
ZDo6c2V0SW1hZ2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSkKIHsKICAgICBtX2Rh
dGFTZXQgPSB0cnVlOworICAgIG1faW1hZ2VEYXRhID0gV1RGTW92ZShkYXRhKTsKKyAgICBtX2lt
YWdlID0gbnVsbHB0cjsKIAotICAgIC8vIEl0J3Mgb2theSB0byBkZWxldGUgdGhlIHJhdyBpbWFn
ZSBoZXJlLiBBbnkgZXhpc3RpbmcgY2xpZW50cyB1c2luZyB0aGlzIGljb24gd2lsbCBiZQotICAg
IC8vIG1hbmFnaW5nIGFuIGltYWdlIHRoYXQgd2FzIGNyZWF0ZWQgd2l0aCBhIGNvcHkgb2YgdGhp
cyByYXcgaW1hZ2UgZGF0YS4KLSAgICBpZiAoIWRhdGEtPnNpemUoKSkgewotICAgICAgICBtX2lt
YWdlID0gbnVsbHB0cjsKKyAgICBpZiAoIW1faW1hZ2VEYXRhLT5zaXplKCkpIHsKKyAgICAgICAg
bV9pbWFnZURhdGEgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9p
bWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKLSAgICBpZiAobV9pbWFnZS0+c2V0RGF0YShX
VEZNb3ZlKGRhdGEpLCB0cnVlKSA8IEVuY29kZWREYXRhU3RhdHVzOjpTaXplQXZhaWxhYmxlKSB7
CisgICAgYXV0byBpbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKKyAgICBpZiAoaW1hZ2Ut
PnNldERhdGEoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4geyBtX2ltYWdlRGF0YSB9LCB0cnVlKSA8IEVu
Y29kZWREYXRhU3RhdHVzOjpTaXplQXZhaWxhYmxlKSB7CiAgICAgICAgIExPRyhJY29uRGF0YWJh
c2UsICJNYW51YWwgaW1hZ2UgZGF0YSBmb3IgaWNvblVSTCAnJXMnIEZBSUxFRCAtIGl0IHdhcyBw
cm9iYWJseSBpbnZhbGlkIGltYWdlIGRhdGEiLCBtX2ljb25VUkwuYXNjaWkoKS5kYXRhKCkpOwot
ICAgICAgICBtX2ltYWdlID0gbnVsbHB0cjsKLSAgICB9Ci19Ci0KLXZvaWQgSWNvbkRhdGFiYXNl
OjpJY29uUmVjb3JkOjpsb2FkSW1hZ2VGcm9tUmVzb3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2Up
Ci17Ci0gICAgaWYgKCFyZXNvdXJjZSkKKyAgICAgICAgbV9pbWFnZURhdGEgPSBudWxscHRyOwog
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgbV9pbWFnZSA9IEltYWdlOjpsb2FkUGxhdGZv
cm1SZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgbV9kYXRhU2V0ID0gdHJ1ZTsKKyAgICBtX2ltYWdl
ID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisgICAgaWYgKCFtX2ltYWdl
KSB7CisgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJNYW51YWwgaW1hZ2UgZGF0YSBmb3IgaWNv
blVSTCAnJXMnIEZBSUxFRCAtIGl0IHdhcyBwcm9iYWJseSBpbnZhbGlkIGltYWdlIGRhdGEiLCBt
X2ljb25VUkwuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBtX2ltYWdlRGF0YSA9IG51bGxwdHI7
CisgICAgfQogfQogCiBJY29uRGF0YWJhc2U6Okljb25SZWNvcmQ6OkltYWdlRGF0YVN0YXR1cyBJ
Y29uRGF0YWJhc2U6Okljb25SZWNvcmQ6OmltYWdlRGF0YVN0YXR1cygpCkBAIC0xNTMsOSArMTUx
LDkgQEAgSWNvbkRhdGFiYXNlOjpJY29uUmVjb3JkOjpJbWFnZURhdGFTdGF0dXMgSWNvbkRhdGFi
YXNlOjpJY29uUmVjb3JkOjppbWFnZURhdGFTdGEKIEljb25EYXRhYmFzZTo6SWNvblNuYXBzaG90
IEljb25EYXRhYmFzZTo6SWNvblJlY29yZDo6c25hcHNob3QoYm9vbCBmb3JEZWxldGlvbikgY29u
c3QKIHsKICAgICBpZiAoZm9yRGVsZXRpb24pCi0gICAgICAgIHJldHVybiBJY29uU25hcHNob3Qo
bV9pY29uVVJMLCAwLCAwKTsKKyAgICAgICAgcmV0dXJuIEljb25TbmFwc2hvdChtX2ljb25VUkws
IDAsIG51bGxwdHIpOwogCi0gICAgcmV0dXJuIEljb25TbmFwc2hvdChtX2ljb25VUkwsIG1fc3Rh
bXAsIG1faW1hZ2UgPyBtX2ltYWdlLT5kYXRhKCkgOiAwKTsKKyAgICByZXR1cm4gSWNvblNuYXBz
aG90KG1faWNvblVSTCwgbV9zdGFtcCwgbV9pbWFnZURhdGEgPyBtX2ltYWdlRGF0YS5nZXQoKSA6
IG51bGxwdHIpOwogfQogCiBJY29uRGF0YWJhc2U6OlBhZ2VVUkxSZWNvcmQ6OlBhZ2VVUkxSZWNv
cmQoY29uc3QgU3RyaW5nJiBwYWdlVVJMKQpAQCAtMzA1LDcgKzMwMyw3IEBAIHN0YXRpYyBib29s
IGRvY3VtZW50Q2FuSGF2ZUljb24oY29uc3QgU3RyaW5nJiBkb2N1bWVudFVSTCkKICAgICByZXR1
cm4gIWRvY3VtZW50VVJMLmlzRW1wdHkoKSAmJiAhcHJvdG9jb2xJcyhkb2N1bWVudFVSTCwgImFi
b3V0Iik7CiB9CiAKLUltYWdlKiBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VV
UkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2luYWwsIGNvbnN0IEludFNpemUmIHNpemUpCitz
dGQ6OnBhaXI8TmF0aXZlSW1hZ2VQdHIsIEljb25EYXRhYmFzZTo6SXNLbm93bkljb24+IEljb25E
YXRhYmFzZTo6c3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkxP
cmlnaW5hbCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBBU1NFUlRfTk9UX1NZTkNfVEhS
RUFEKCk7CiAKQEAgLTMxMyw3ICszMTEsNyBAQCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJv
bm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjbwogICAg
IC8vIFdlIHNob3VsZCBnbyBvdXIgb2Ygb3VyIHdheSB0byBvbmx5IGNvcHkgaXQgaWYgd2UgaGF2
ZSB0byBzdG9yZSBpdAogCiAgICAgaWYgKCFpc09wZW4oKSB8fCAhZG9jdW1lbnRDYW5IYXZlSWNv
bihwYWdlVVJMT3JpZ2luYWwpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIHsgbnVsbHB0ciwgSXNLbm93bkljb246Ok5vIH07CiAKICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3VybEFuZEljb25Mb2NrKTsKIApAQCAtMzM4LDcgKzMzNiw3IEBAIEltYWdlKiBJY29uRGF0
YWJhc2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3Jp
Z2luYWwsIGNvCiAgICAgICAgIGlmICghbV9pY29uVVJMSW1wb3J0Q29tcGxldGUpCiAgICAgICAg
ICAgICBtX3BhZ2VVUkxzSW50ZXJlc3RlZEluSWNvbnMuYWRkKHBhZ2VVUkxDb3B5KTsKIAotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgSXNLbm93bklj
b246Ok5vIH07CiAgICAgfQogCiAgICAgSWNvblJlY29yZCogaWNvblJlY29yZCA9IHBhZ2VSZWNv
cmQtPmljb25SZWNvcmQoKTsKQEAgLTM0NywxNCArMzQ1LDE0IEBAIEltYWdlKiBJY29uRGF0YWJh
c2U6OnN5bmNocm9ub3VzSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJiBwYWdlVVJMT3JpZ2lu
YWwsIGNvCiAgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgcGFnZVVSTCBpcyBhbHJlYWR5IGluIHRo
ZSBzZXQgdG8gYWxlcnQgdGhlIGNsaWVudCB3aGVuIHRoZSBpY29uVVJMIG1hcHBpbmcgaXMgY29t
cGxldGUgc28KICAgICAvLyB3ZSBjYW4ganVzdCBiYWlsIG5vdwogICAgIGlmICghbV9pY29uVVJM
SW1wb3J0Q29tcGxldGUgJiYgIWljb25SZWNvcmQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICByZXR1cm4geyBudWxscHRyLCBJc0tub3duSWNvbjo6Tm8gfTsKIAogICAgIC8vIEFz
c3VtaW5nIHdlJ3JlIGRvbmUgaW5pdGlhbGl6aW5nIGFuZCBjbGVhbnVwIGlzIGFsbG93ZWQsCiAg
ICAgLy8gdGhlIG9ubHkgd2F5IHdlIHNob3VsZCAqbm90KiBoYXZlIGFuIGljb24gcmVjb3JkIGlz
IGlmIHRoaXMgcGFnZVVSTCBpcyByZXRhaW5lZCBidXQgaGFzIG5vIGljb24geWV0LgogICAgIEFT
U0VSVChpY29uUmVjb3JkIHx8IGRhdGFiYXNlQ2xlYW51cENvdW50ZXIgfHwgbV9yZXRhaW5lZFBh
Z2VVUkxzLmNvbnRhaW5zKHBhZ2VVUkxPcmlnaW5hbCkpOwogCiAgICAgaWYgKCFpY29uUmVjb3Jk
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgSXNL
bm93bkljb246Ok5vIH07CiAKICAgICAvLyBJZiBpdCdzIGEgbmV3IEljb25SZWNvcmQgb2JqZWN0
IHRoYXQgZG9lc24ndCBoYXZlIGl0cyBpbWFnZURhdGEgc2V0IHlldCwKICAgICAvLyBtYXJrIGl0
IHRvIGJlIHJlYWQgYnkgdGhlIGJhY2tncm91bmQgdGhyZWFkCkBAIC0zNjYsMjUgKzM2NCwxNSBA
QCBJbWFnZSogSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTE9yaWdpbmFsLCBjbwogICAgICAgICBtX3BhZ2VVUkxzSW50ZXJlc3RlZElu
SWNvbnMuYWRkKHBhZ2VVUkxDb3B5KTsKICAgICAgICAgbV9pY29uc1BlbmRpbmdSZWFkaW5nLmFk
ZChpY29uUmVjb3JkKTsKICAgICAgICAgd2FrZVN5bmNUaHJlYWQoKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IG51bGxwdHIsIElzS25vd25JY29uOjpObyB9Owog
ICAgIH0KIAogICAgIC8vIElmIHRoZSBzaXplIHBhcmFtZXRlciB3YXMgKDAsIDApIHRoYXQgbWVh
bnMgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBqdXN0IHdhbnRlZCB0aGUgcmVhZCBmcm9tIGRp
c2sgdG8gYmUga2lja2VkIG9mZgogICAgIC8vIGFuZCBpc24ndCBhY3R1YWxseSBpbnRlcmVzdGVk
IGluIHRoZSBpbWFnZSByZXR1cm4gdmFsdWUKICAgICBpZiAoc2l6ZSA9PSBJbnRTaXplKDAsIDAp
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgSXNL
bm93bkljb246OlllcyB9OwogCi0gICAgLy8gUEFSQU5PSUQgRElTQ1VTU0lPTjogVGhpcyBtZXRo
b2QgbWFrZXMgc29tZSBhc3N1bXB0aW9ucy4gSXQgcmV0dXJucyBhIFdlYkNvcmU6OmltYWdlIHdo
aWNoIHRoZSBpY29uIGRhdGFiYXNlIG1pZ2h0IGRpc3Bvc2Ugb2YgYXQgYW55dGltZSBpbiB0aGUg
ZnV0dXJlLAotICAgIC8vIGFuZCBJbWFnZXMgYXJlbid0IHJlZiBjb3VudGVkLiBTbyB0aGVyZSBp
cyBubyB3YXkgZm9yIHRoZSBjbGllbnQgdG8gZ3VhcmFudGVlIGNvbnRpbnVlZCBleGlzdGVuY2Ug
b2YgdGhlIGltYWdlLgotICAgIC8vIFRoaXMgaGFzICphbHdheXMqIGJlZW4gdGhlIGNhc2UsIGJ1
dCBpbiBwcmFjdGljZSBjbGllbnRzIHdvdWxkIGFsd2F5cyBjcmVhdGUgc29tZSBvdGhlciBwbGF0
Zm9ybSBzcGVjaWZpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW1hZ2UKLSAgICAvLyBhbmQgZHJv
cCB0aGUgcmF3IEltYWdlKi4gT24gTWFjIGFuIE5TSW1hZ2UsIGFuZCBvbiB3aW5kb3dzIGRyYXdp
bmcgaW50byBhbiBIQklUTUFQLgotICAgIC8vIFRoZSBhc3luYyBhc3BlY3QgYWRkcyBhIGh1Z2Ug
cXVlc3Rpb24gLSB3aGF0IGlmIHRoZSBpbWFnZSBpcyBkZWxldGVkIGJlZm9yZSB0aGUgcGxhdGZv
cm0gc3BlY2lmaWMgQVBJIGhhcyBhIGNoYW5jZSB0byBjcmVhdGUgaXRzIG93bgotICAgIC8vIHJl
cHJlc2VudGF0aW9uIG91dCBvZiBpdD8KLSAgICAvLyBJZiBhbiBpbWFnZSBpcyByZWFkIGluIGZy
b20gdGhlIGljb25kYXRhYmFzZSwgd2UgZG8gKm5vdCogb3ZlcndyaXRlIGFueSBpbWFnZSBkYXRh
IHRoYXQgZXhpc3RzIGluIHRoZSBpbi1tZW1vcnkgY2FjaGUuCi0gICAgLy8gVGhpcyBpcyBiZWNh
dXNlIHdlIG1ha2UgdGhlIGFzc3VtcHRpb24gdGhhdCBhbnl0aGluZyBpbiBtZW1vcnkgaXMgbmV3
ZXIgdGhhbiB3aGF0ZXZlciBpcyBpbiB0aGUgZGF0YWJhc2UuCi0gICAgLy8gU28gdGhlIG9ubHkg
dGltZSB0aGUgZGF0YSB3aWxsIGJlIHNldCBmcm9tIHRoZSBzZWNvbmQgdGhyZWFkIGlzIHdoZW4g
aXQgaXMgSU5JVElBTExZIGJlaW5nIHJlYWQgaW4gZnJvbSB0aGUgZGF0YWJhc2UsIGJ1dCB3ZSB3
b3VsZCBuZXZlcgotICAgIC8vIGRlbGV0ZSB0aGUgaW1hZ2Ugb24gdGhlIHNlY29uZGFyeSB0aHJl
YWQgaWYgdGhlIGltYWdlIGFscmVhZHkgZXhpc3RzLgotICAgIHJldHVybiBpY29uUmVjb3JkLT5p
bWFnZShzaXplKTsKKyAgICByZXR1cm4geyBpY29uUmVjb3JkLT5pbWFnZShzaXplKSwgSXNLbm93
bkljb246OlllcyB9OwogfQogCiBTdHJpbmcgSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0ljb25V
UkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTE9yaWdpbmFsKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuaAppbmRleCA0ZDQ3ZGU5NTBk
MS4uNmYxMGU0MTJkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL0ljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L0ljb25EYXRhYmFzZS5oCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEltYWdlOwogY2xhc3MgU2hh
cmVkQnVmZmVyOwogfQogCkBAIC01OSwxMCArNTgsNiBAQCBjbGFzcyBJY29uRGF0YWJhc2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiBwcml2YXRlOgotICAgIGVudW0gSW1hZ2VE
YXRhU3RhdHVzIHsKLSAgICAgICAgSW1hZ2VEYXRhU3RhdHVzUHJlc2VudCwgSW1hZ2VEYXRhU3Rh
dHVzTWlzc2luZywgSW1hZ2VEYXRhU3RhdHVzVW5rbm93bgotICAgIH07Ci0KICAgICBjbGFzcyBJ
Y29uU25hcHNob3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSWNvblNuYXBzaG90KCkgPSBkZWZh
dWx0OwpAQCAtOTUsMTIgKzkwLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0VGltZXN0
YW1wKHRpbWVfdCBzdGFtcCkgeyBtX3N0YW1wID0gc3RhbXA7IH0KIAogICAgICAgICB2b2lkIHNl
dEltYWdlRGF0YShSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKTsKLSAgICAgICAgV2Vi
Q29yZTo6SW1hZ2UqIGltYWdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICAgICAgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VQdHIgaW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiAg
ICAgICAgIFN0cmluZyBpY29uVVJMKCkgeyByZXR1cm4gbV9pY29uVVJMOyB9CiAKLSAgICAgICAg
dm9pZCBsb2FkSW1hZ2VGcm9tUmVzb3VyY2UoY29uc3QgY2hhciopOwotCiAgICAgICAgIGVudW0g
Y2xhc3MgSW1hZ2VEYXRhU3RhdHVzIHsgUHJlc2VudCwgTWlzc2luZywgVW5rbm93biB9OwogICAg
ICAgICBJbWFnZURhdGFTdGF0dXMgaW1hZ2VEYXRhU3RhdHVzKCk7CiAKQEAgLTExMyw3ICsxMDYs
OCBAQCBwcml2YXRlOgogCiAgICAgICAgIFN0cmluZyBtX2ljb25VUkw7CiAgICAgICAgIHRpbWVf
dCBtX3N0YW1wIHsgMCB9OwotICAgICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1faW1hZ2U7
CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1faW1hZ2VEYXRhOworICAg
ICAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBtX2ltYWdlOwogCiAgICAgICAgIEhhc2hTZXQ8
U3RyaW5nPiBtX3JldGFpbmluZ1BhZ2VVUkxzOwogCkBAIC0xOTcsNyArMTkxLDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SWNvbkRhdGFGb3JJY29uVVJMKFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYsIGNvbnN0IFN0cmluZyYgaWNvblVSTCk7CiAgICAgdm9pZCBzZXRJY29uVVJMRm9y
UGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCk7CiAK
LSAgICBXZWJDb3JlOjpJbWFnZSogc3luY2hyb25vdXNJY29uRm9yUGFnZVVSTChjb25zdCBTdHJp
bmcmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgZW51bSBjbGFzcyBJc0tub3duSWNv
biB7IE5vLCBZZXMgfTsKKyAgICBzdGQ6OnBhaXI8V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIsIElz
S25vd25JY29uPiBzeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBTdHJpbmcgc3luY2hyb25vdXNJY29uVVJMRm9yUGFn
ZVVSTChjb25zdCBTdHJpbmcmKTsKICAgICBib29sIHN5bmNocm9ub3VzSWNvbkRhdGFLbm93bkZv
ckljb25VUkwoY29uc3QgU3RyaW5nJik7CiAgICAgSWNvbkxvYWREZWNpc2lvbiBzeW5jaHJvbm91
c0xvYWREZWNpc2lvbkZvckljb25VUkwoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNw
cAppbmRleCBlYTFhNDBjMWNjNS4uMGNjOTQwNzdlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApA
QCAtMTM5LDE5ICsxMzksMTggQEAgc3RhdGljIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGdldElj
b25TdXJmYWNlU3luY2hyb25vdXNseShXZWJLaXRGYXZpY29uRGF0YWJhc2UKIAogICAgIC8vIFRo
ZSBleGFjdCBzaXplIHdlIHBhc3MgaXMgaXJyZWxldmFudCB0byB0aGUgaWNvbkRhdGFiYXNlIGNv
ZGUuCiAgICAgLy8gV2UgbXVzdCBwYXNzIHNvbWV0aGluZyBncmVhdGVyIHRoYW4gMHgwIHRvIGdl
dCBhbiBpY29uLgotICAgIFdlYkNvcmU6OkltYWdlKiBpY29uSW1hZ2UgPSBkYXRhYmFzZS0+cHJp
di0+aWNvbkRhdGFiYXNlLT5zeW5jaHJvbm91c0ljb25Gb3JQYWdlVVJMKHBhZ2VVUkwsIFdlYkNv
cmU6OkludFNpemUoMSwgMSkpOwotICAgIGlmICghaWNvbkltYWdlKSB7CisgICAgYXV0byBpY29u
RGF0YSA9IGRhdGFiYXNlLT5wcml2LT5pY29uRGF0YWJhc2UtPnN5bmNocm9ub3VzSWNvbkZvclBh
Z2VVUkwocGFnZVVSTCwgV2ViQ29yZTo6SW50U2l6ZSgxLCAxKSk7CisgICAgaWYgKGljb25EYXRh
LnNlY29uZCA9PSBJY29uRGF0YWJhc2U6OklzS25vd25JY29uOjpObykgewogICAgICAgICBnX3Nl
dF9lcnJvcihlcnJvciwgV0VCS0lUX0ZBVklDT05fREFUQUJBU0VfRVJST1IsIFdFQktJVF9GQVZJ
Q09OX0RBVEFCQVNFX0VSUk9SX0ZBVklDT05fVU5LTk9XTiwgXygiVW5rbm93biBmYXZpY29uIGZv
ciBwYWdlICVzIiksIHBhZ2VVUkwudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBpY29u
SW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7Ci0gICAgaWYgKCFzdXJmYWNlKSB7
CisgICAgaWYgKCFpY29uRGF0YS5maXJzdCkgewogICAgICAgICBnX3NldF9lcnJvcihlcnJvciwg
V0VCS0lUX0ZBVklDT05fREFUQUJBU0VfRVJST1IsIFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0VS
Uk9SX0ZBVklDT05fTk9UX0ZPVU5ELCBfKCJQYWdlICVzIGRvZXMgbm90IGhhdmUgYSBmYXZpY29u
IiksIHBhZ2VVUkwudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KIAotICAgIHJldHVybiBzdXJmYWNlOworICAgIHJldHVybiBpY29uRGF0YS5maXJzdDsKIH0K
IAogc3RhdGljIHZvaWQgZGVsZXRlUGVuZGluZ0ljb25SZXF1ZXN0cyhXZWJLaXRGYXZpY29uRGF0
YWJhc2UqIGRhdGFiYXNlLCBQZW5kaW5nSWNvblJlcXVlc3RWZWN0b3IqIHJlcXVlc3RzLCBjb25z
dCBTdHJpbmcmIHBhZ2VVUkwpCg==
</data>
<flag name="review"
          id="338295"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>