<?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>136694</bug_id>
          
          <creation_ts>2014-09-09 23:43:43 -0700</creation_ts>
          <short_desc>Use toDocument instead of static_cast&lt;Document*&gt;</short_desc>
          <delta_ts>2014-09-10 20:41:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136732</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>aestes</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ltilve</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1034234</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-09 23:43:43 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034235</commentid>
    <comment_count>1</comment_count>
      <attachid>237881</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-09 23:44:33 -0700</bug_when>
    <thetext>Created attachment 237881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034239</commentid>
    <comment_count>2</comment_count>
      <attachid>237881</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-09-10 00:25:33 -0700</bug_when>
    <thetext>Comment on attachment 237881
Patch

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

r=me, but I think you should fix the behavior change in XMLHttpRequest::document().

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1799
&gt;      ASSERT(scriptExecutionContext()-&gt;isDocument());
&gt; -    return *static_cast&lt;Document*&gt;(scriptExecutionContext());
&gt; +    return *toDocument(scriptExecutionContext());

toDocument() calls ASSERT_WITH_SECURITY_IMPLICATION(!scriptExecutionContext() || scriptExecutionContext()-&gt;isDocument()), which is almost the same as the ASSERT above except with regard to how null is handled. I think you can simplify this code to just ASSERT that scriptExecutionContext() is non-null.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:328
&gt;      ASSERT(m_scriptExecutionContext &amp;&amp; m_scriptExecutionContext-&gt;isDocument());
&gt; -    return static_cast&lt;Document*&gt;(m_scriptExecutionContext);
&gt; +    return toDocument(m_scriptExecutionContext);

Ditto.

&gt; Source/WebCore/workers/DefaultSharedWorkerRepository.cpp:231
&gt;      ASSERT_WITH_SECURITY_IMPLICATION(context-&gt;isDocument());
&gt;      ASSERT(!isClosing());
&gt;      MutexLocker lock(m_workerDocumentsLock);
&gt; -    Document* document = static_cast&lt;Document*&gt;(context);
&gt; -    m_workerDocuments.add(document);
&gt; +    m_workerDocuments.add(toDocument(context));

Ditto.

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:86
&gt;      ASSERT_WITH_SECURITY_IMPLICATION(m_scriptExecutionContext-&gt;isDocument());
&gt; -    Document* document = static_cast&lt;Document*&gt;(m_scriptExecutionContext.get());
&gt; +    Document* document = toDocument(m_scriptExecutionContext.get());

Ditto.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:157
&gt; -    ASSERT_WITH_SECURITY_IMPLICATION(scriptExecutionContext()-&gt;isDocument());
&gt; -    return static_cast&lt;Document*&gt;(scriptExecutionContext());
&gt; +    return toDocument(scriptExecutionContext());

You&apos;re introducing a behavior change by removing the ASSERT_WITH_SECURITY_IMPLICATION. Previously, if scriptExecutionContext() was null then we&apos;d crash evaluating the ASSERT. Now we won&apos;t, since the ASSERT used by toDocument() allows null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034259</commentid>
    <comment_count>3</comment_count>
      <attachid>237884</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-10 03:39:25 -0700</bug_when>
    <thetext>Created attachment 237884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034260</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-10 03:41:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 237881 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=237881&amp;action=review
&gt; 
&gt; r=me, but I think you should fix the behavior change in XMLHttpRequest::document().
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1799
&gt; &gt;      ASSERT(scriptExecutionContext()-&gt;isDocument());
&gt; &gt; -    return *static_cast&lt;Document*&gt;(scriptExecutionContext());
&gt; &gt; +    return *toDocument(scriptExecutionContext());
&gt; 
&gt; toDocument() calls ASSERT_WITH_SECURITY_IMPLICATION(!scriptExecutionContext() || scriptExecutionContext()-&gt;isDocument()), which is almost the same as the ASSERT above except with regard to how null is handled. I think you can simplify this code to just ASSERT that scriptExecutionContext() is non-null.

Nice catching ! I fixed those null check. BTW, additionally one more thing is added to SCRIPT_EXECUTION_CONTEXT_TYPE_CASTS in order to remove .get().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034261</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-10 03:46:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
 
&gt; BTW, additionally one more thing is added to SCRIPT_EXECUTION_CONTEXT_TYPE_CASTS in order to remove .get().

If you don&apos;t mind to add it, I will land this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034277</commentid>
    <comment_count>6</comment_count>
      <attachid>237884</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-10 06:23:49 -0700</bug_when>
    <thetext>Comment on attachment 237884
Patch

Clearing flags on attachment: 237884

Committed r173458: &lt;http://trac.webkit.org/changeset/173458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034278</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-10 06:23:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034353</commentid>
    <comment_count>8</comment_count>
      <attachid>237884</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-09-10 11:09:42 -0700</bug_when>
    <thetext>Comment on attachment 237884
Patch

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

&gt; Source/WebCore/workers/DefaultSharedWorkerRepository.cpp:228
&gt; -    ASSERT_WITH_SECURITY_IMPLICATION(context-&gt;isDocument());
&gt; +    ASSERT_WITH_SECURITY_IMPLICATION(context);

I think this can be a regular ASSERT instead of ASSERT_WITH_SECURITY_IMPLICATION, since I don&apos;t believe there is a security implication to a null dereference (the security implication before had to do with bad casts).

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:86
&gt; -    ASSERT_WITH_SECURITY_IMPLICATION(m_scriptExecutionContext-&gt;isDocument());
&gt; -    Document* document = static_cast&lt;Document*&gt;(m_scriptExecutionContext.get());
&gt; +    ASSERT_WITH_SECURITY_IMPLICATION(m_scriptExecutionContext);
&gt; +    Document* document = toDocument(m_scriptExecutionContext);

Ditto.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:158
&gt; -    ASSERT_WITH_SECURITY_IMPLICATION(scriptExecutionContext()-&gt;isDocument());
&gt; -    return static_cast&lt;Document*&gt;(scriptExecutionContext());
&gt; +    ASSERT_WITH_SECURITY_IMPLICATION(scriptExecutionContext());
&gt; +    return toDocument(scriptExecutionContext());

Ditto.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237881</attachid>
            <date>2014-09-09 23:44:33 -0700</date>
            <delta_ts>2014-09-10 03:39:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136694-20140910154428.patch</filename>
            <type>text/plain</type>
            <size>7446</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUzYTFjZWUxM2YyZjNj
MGEyNGMzNWQ2ODZlYWViYjA3ODVjNmM3ZS4uMDljN2JmZTg0NWQ4MmVkZDFlNzgzMDVmNDcwOTBj
OWQ2M2UxMzY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA5LTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHRvRG9j
dW1lbnQgaW5zdGVhZCBvZiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY2OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbiB1cCBzdGF0aWNfY2FzdDxEb2N1
bWVudCo+LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpkb2N1bWVudCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Db250ZXh0Ojpkb2N1bWVudCk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRE
T01Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d3JhcCk6CisgICAgICAgICogZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnJvckV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL0RlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdv
cmtlclByb3h5OjphZGRUb1dvcmtlckRvY3VtZW50cyk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6CisKIDIwMTQtMDktMDkgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIGZpeCBmb3IgV2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA5NzMyN2FhNzI3N2Y2YjY4MjIzYTVlYmVm
NTQ2OWQ2ZjU4ZGJhYjBlLi4yOTM4NWM0ZGFhMDNhOWNjY2EwZGZjYmU5MjhlZWY3YTEwZDUzNzJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCkBAIC0xNzk2LDcgKzE3OTYsNyBAQCBWZWN0b3I8U3RyaW5nPiBTb3VyY2VCdWZm
ZXI6OmJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbWljU3RyaW5nJiB0cmFjawog
RG9jdW1lbnQmIFNvdXJjZUJ1ZmZlcjo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSk7Ci0gICAgcmV0dXJuICpzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgcmV0dXJu
ICp0b0RvY3VtZW50KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAppbmRleCA0MjhhNzBjMzgxMzUzNzQxMWNkMzc3NDEyZTE4YzRkZGNlZjQ2Nzcy
Li45NTM2N2U5OGEzMTlmMTg5MzYxNGIwNzg3MzE0MjMyMjdjMjRjNDg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC0zMjUsNyAr
MzI1LDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OnN0b3AoKQogRG9jdW1lbnQqIEF1ZGlvQ29udGV4
dDo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgJiYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAg
cmV0dXJuIHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIH0KIAogUGFzc1Jl
ZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIodW5zaWduZWQgbnVt
YmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBF
eGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCmluZGV4IDFiYzNjOWZkNDU2OWY4NTExM2E0YjI5OTVi
ODRiNGZmOGVmOGM5NTIuLmE2OGRlMmFiNWJmZjA0MDJmMmFlMmU3MWRjNWM3ZDk4ZmFjMWMxY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01Q
cml2YXRlLmNwcApAQCAtMTAwLDkgKzEwMCw5IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSog
bm9kZSkKICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJ
VF9ET01fTk9ERSh3cmFwQ29tbWVudChzdGF0aWNfY2FzdDxDb21tZW50Kj4obm9kZSkpKTsKICAg
ICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxEb2N1
bWVudCo+KG5vZGUpLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICBpZiAodG9Eb2N1bWVudChu
b2RlKS0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05P
REUod3JhcEhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkpOwot
ICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBEb2N1bWVudChzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcERv
Y3VtZW50KHRvRG9jdW1lbnQobm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVf
Tk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnRUeXBlKHN0
YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9GUkFHTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCmluZGV4IDIyYWNlZjcxZWZjZDg1ODg1NzIyODk1MDJmNjQzYmU3NTExZDAwNmQu
LjVmNDA1YWY0NmRkNGM5Y2I0Zjk1ODIwZWZhMjVlMjJmMWM2ZWE3YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM3OSw3ICszNzksNyBA
QCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgaW50CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKHRh
cmdldCA9PSB0YXJnZXQtPnRvRE9NV2luZG93KCkgJiYgaXNEb2N1bWVudCgpKSB7Ci0gICAgICAg
IFNldHRpbmdzKiBzZXR0aW5ncyA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcyktPnNldHRp
bmdzKCk7CisgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IHRvRG9jdW1lbnQodGhpcyktPnNl
dHRpbmdzKCk7CiAgICAgICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPnNob3VsZERpc3Bh
dGNoSmF2YVNjcmlwdFdpbmRvd09uRXJyb3JFdmVudHMoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRT
aGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDYyMDExNGVkNWNhNGM2YjY1YzMxZTE0
NDYxZmZlODMzM2QxOTdlMmEuLjkwMTczMTQ3OGZkMTI0ZWIzODZkYjM1MGExZTljZWZmMmYzMDE0
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJl
ZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC0yMjgsOCArMjI4LDcgQEAgdm9pZCBTaGFyZWRXb3Jr
ZXJQcm94eTo6YWRkVG9Xb3JrZXJEb2N1bWVudHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwogICAgIEFTU0VSVCghaXNDbG9zaW5nKCkpOwogICAgIE11dGV4TG9ja2VyIGxv
Y2sobV93b3JrZXJEb2N1bWVudHNMb2NrKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwotICAgIG1fd29ya2VyRG9jdW1lbnRzLmFkZChk
b2N1bWVudCk7CisgICAgbV93b3JrZXJEb2N1bWVudHMuYWRkKHRvRG9jdW1lbnQoY29udGV4dCkp
OwogfQogCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpkb2N1bWVudERldGFjaGVkKERvY3VtZW50
KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAKaW5kZXggMDM3NTkwNjEyYWVhODdlNjcyMzc1YmFiYzk5ZmMzODJiOWUwNzJjNS4u
ZDM1OGYxZDk0MDVkZDA3YmI3ZjBjYjk5N2I1ZmI0ZjYzNTExNGNiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTgzLDcgKzgzLDcg
QEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRv
IGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5pc0RvY3VtZW50KCkpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpKTsKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSB0b0RvY3VtZW50KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSk7CiAg
ICAgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MgPSAwOwogICAgIGlmIChkb2N1bWVudC0+cGFnZSgp
KQogICAgICAgICBzZXR0aW5ncyA9ICZkb2N1bWVudC0+cGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0
dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGMwOTg5ZDY1
ZjNmYjFkYjkyYTYyYzVmYjkxYTA0YjVjMmM0YzZiMjAuLmQwZmIyMDQyNmIxZDBjOWM0YjhlNDFl
ZjUxYTA5ZTA2ZGJjMmM5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApA
QCAtMTU0LDggKzE1NCw3IEBAIFhNTEh0dHBSZXF1ZXN0Ojp+WE1MSHR0cFJlcXVlc3QoKQogCiBE
b2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9j
dW1lbnQoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogfQogCiBTZWN1cml0eU9yaWdpbiogWE1MSHR0cFJlcXVlc3Q6OnNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QKQEAgLTQ4OCw3ICs0ODcsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVu
KGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vbCBhc3luYywgRXhjZQog
ICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3Mg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZl
ZC4KICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSA9
IGZhbHNlOwogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkg
ewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRv
RG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAgICAgaWYgKGRvY3VtZW50
LT5mcmFtZSgpKQogICAgICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5ID0gZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpLnNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237884</attachid>
            <date>2014-09-10 03:39:25 -0700</date>
            <delta_ts>2014-09-10 11:09:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136694-20140910193920.patch</filename>
            <type>text/plain</type>
            <size>8772</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY2YjZlNDA1ZjVlN2Qw
ZDY4YzU2YWNiMTYwZDBjZDJkYTA3MDQ3ZS4uNTUwZjRkYTQzMTAwNGY1YWY3M2QyZDk1MzQ5Mjdm
ZDI0ZjVkYTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA5LTEwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgVXNlIHRvRG9j
dW1lbnQgaW5zdGVhZCBvZiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY2OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIENsZWFuIHVwIHN0YXRpY19jYXN0PERvY3VtZW50
Kj4uCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmRvY3VtZW50KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Nv
bnRleHQ6OmRvY3VtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTVBy
aXZhdGUuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3cmFwKToKKyAgICAgICAgKiBkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpkaXNwYXRjaEVycm9yRXZlbnQpOiBBZGQgYSBsaW5lIHRvIHJlbW92ZSAuZ2V0KCku
CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94eTo6YWRkVG9Xb3JrZXJEb2N1bWVudHMp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
Om9wZW4pOgorCiAyMDE0LTA5LTA5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNU0VdIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS5odG1sIGZhaWxpbmcgYWZ0ZXIgcjE3MzMxOApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIu
Y3BwCmluZGV4IDk3MzI3YWE3Mjc3ZjZiNjgyMjNhNWViZWY1NDY5ZDZmNThkYmFiMGUuLjlmM2M5
NmEyYzEyYTZhZTIxMDU0ZGEzOTBkMjgwMTUzNzg4YzMxNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTE3OTUsOCAr
MTc5NSw4IEBAIFZlY3RvcjxTdHJpbmc+IFNvdXJjZUJ1ZmZlcjo6YnVmZmVyZWRTYW1wbGVzRm9y
VHJhY2tJRChjb25zdCBBdG9taWNTdHJpbmcmIHRyYWNrCiAKIERvY3VtZW50JiBTb3VyY2VCdWZm
ZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc0RvY3VtZW50KCkpOwotICAgIHJldHVybiAqc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworICAgIHJldHVybiAqdG9Eb2N1bWVudChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNDI4YTcwYzM4MTM1Mzc0MTFjZDM3
NzQxMmUxOGM0ZGRjZWY0Njc3Mi4uMzY0YzBjNjhkZWQxOWIzMjc4YjUxYTZhZTEwOTU3MjBhOWY3
NWI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmNwcApAQCAtMzI0LDggKzMyNCw4IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpzdG9wKCkKIAog
RG9jdW1lbnQqIEF1ZGlvQ29udGV4dDo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIEFTU0VSVCht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgJiYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Rv
Y3VtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CisgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgcmV0dXJuIHRvRG9jdW1lbnQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIH0KIAogUGFz
c1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9Db250ZXh0OjpjcmVhdGVCdWZmZXIodW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRl
LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvV2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
b2JqZWN0L1dlYktpdERPTVByaXZhdGUuY3BwCmluZGV4IDFiYzNjOWZkNDU2OWY4NTExM2E0YjI5
OTViODRiNGZmOGVmOGM5NTIuLmE2OGRlMmFiNWJmZjA0MDJmMmFlMmU3MWRjNWM3ZDk4ZmFjMWMx
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9N
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRE
T01Qcml2YXRlLmNwcApAQCAtMTAwLDkgKzEwMCw5IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9k
ZSogbm9kZSkKICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKICAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwQ29tbWVudChzdGF0aWNfY2FzdDxDb21tZW50Kj4obm9kZSkpKTsK
ICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KG5vZGUpLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICBpZiAodG9Eb2N1bWVu
dChub2RlKS0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9N
X05PREUod3JhcEhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihub2RlKSkp
OwotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBEb2N1bWVudChzdGF0aWNfY2Fz
dDxEb2N1bWVudCo+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3Jh
cERvY3VtZW50KHRvRG9jdW1lbnQobm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnRUeXBl
KHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKSk7CiAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9GUkFHTUVOVF9OT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwCmluZGV4IDIyYWNlZjcxZWZjZDg1ODg1NzIyODk1MDJmNjQzYmU3NTExZDAw
NmQuLjVmNDA1YWY0NmRkNGM5Y2I0Zjk1ODIwZWZhMjVlMjJmMWM2ZWE3YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTM3OSw3ICszNzks
NyBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYg
KHRhcmdldCA9PSB0YXJnZXQtPnRvRE9NV2luZG93KCkgJiYgaXNEb2N1bWVudCgpKSB7Ci0gICAg
ICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcyktPnNl
dHRpbmdzKCk7CisgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IHRvRG9jdW1lbnQodGhpcykt
PnNldHRpbmdzKCk7CiAgICAgICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPnNob3VsZERp
c3BhdGNoSmF2YVNjcmlwdFdpbmRvd09uRXJyb3JFdmVudHMoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAppbmRleCBjMjRhZjFjMWY2YmY3ZjAxODI2YmMzYTZiNTg2YmEzOTA0YzI5ZmNjLi5kYWRk
OWFhMTk2NmExOTc5ODUxYWZjMDYxMGMxOWNlZmY5ZjEyZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTIzNSw2ICsyMzUsNyBAQCBwcml2YXRl
OgogfTsKIAogI2RlZmluZSBTQ1JJUFRfRVhFQ1VUSU9OX0NPTlRFWFRfVFlQRV9DQVNUUyhUb1Zh
bHVlVHlwZU5hbWUpIFwKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVG9WYWx1ZVR5
cGVOYW1lKiB0byMjVG9WYWx1ZVR5cGVOYW1lKGNvbnN0IFJlZlB0cjxUPiYgY29udGV4dCkgeyBy
ZXR1cm4gdG8jI1RvVmFsdWVUeXBlTmFtZShjb250ZXh0LmdldCgpKTsgfSBcCiAgICAgVFlQRV9D
QVNUU19CQVNFKFRvVmFsdWVUeXBlTmFtZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29udGV4
dCwgY29udGV4dC0+aXMjI1RvVmFsdWVUeXBlTmFtZSgpLCBjb250ZXh0LmlzIyNUb1ZhbHVlVHlw
ZU5hbWUoKSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA2
MjAxMTRlZDVjYTRjNmI2NWMzMWUxNDQ2MWZmZTgzMzNkMTk3ZTJhLi5lZTljNjc0NzU1ODNiYTY3
NTJjNDI3MDYzNGRjOGQwNWFhYTBiN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAtMjI1LDExICsy
MjUsMTAgQEAgdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6d29ya2VyR2xvYmFsU2NvcGVEZXN0cm95
ZWQoKQogdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6YWRkVG9Xb3JrZXJEb2N1bWVudHMoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICAvLyBOZXN0ZWQgd29ya2VycyBhcmUg
bm90IHlldCBzdXBwb3J0ZWQsIHNvIHBhc3NlZC1pbiBjb250ZXh0IHNob3VsZCBhbHdheXMgYmUg
YSBEb2N1bWVudC4KLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihjb250ZXh0
LT5pc0RvY3VtZW50KCkpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGNv
bnRleHQpOwogICAgIEFTU0VSVCghaXNDbG9zaW5nKCkpOwogICAgIE11dGV4TG9ja2VyIGxvY2so
bV93b3JrZXJEb2N1bWVudHNMb2NrKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNf
Y2FzdDxEb2N1bWVudCo+KGNvbnRleHQpOwotICAgIG1fd29ya2VyRG9jdW1lbnRzLmFkZChkb2N1
bWVudCk7CisgICAgbV93b3JrZXJEb2N1bWVudHMuYWRkKHRvRG9jdW1lbnQoY29udGV4dCkpOwog
fQogCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpkb2N1bWVudERldGFjaGVkKERvY3VtZW50KiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKaW5kZXggMDM3NTkwNjEyYWVhODdlNjcyMzc1YmFiYzk5ZmMzODJiOWUwNzJjNS4uMmNk
MDA5ZmVkYjY1ODVkNWIzZWQ5ZWQyZmEzYTYzNjFhNzk5MTU2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTgyLDggKzgyLDggQEAg
V29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgpCiB2b2lkIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBX
b3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5l
ZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkK
LSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmlzRG9jdW1lbnQoKSk7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nh
c3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCkpOworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9Eb2N1bWVudChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOwogICAgIEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzID0gMDsKICAgICBpZiAoZG9jdW1lbnQt
PnBhZ2UoKSkKICAgICAgICAgc2V0dGluZ3MgPSAmZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5n
cm91cFNldHRpbmdzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBj
MDk4OWQ2NWYzZmIxZGI5MmE2MmM1ZmI5MWEwNGI1YzJjNGM2YjIwLi45YjMxZjJlMzE3ZDJjYmIz
NGM5YmI4M2I2ZDcxZWU0ZDBmM2NhMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKQEAgLTE1NCw4ICsxNTQsOCBAQCBYTUxIdHRwUmVxdWVzdDo6flhNTEh0dHBSZXF1ZXN0
KCkKIAogRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc0RvY3VtZW50KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICByZXR1cm4gdG9Eb2N1bWVudChzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBTZWN1cml0eU9yaWdpbiogWE1MSHR0cFJlcXVl
c3Q6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIFhNTEh0
dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9v
bCBhc3luYywgRXhjZQogICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlz
b2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2Iv
MTA0NTIwIGlzIHNvbHZlZC4KICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSA9IGZhbHNlOwogICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzRG9jdW1lbnQoKSkgewotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2Fz
dDxEb2N1bWVudCo+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRvRG9jdW1lbnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAg
ICAgaWYgKGRvY3VtZW50LT5mcmFtZSgpKQogICAgICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID0gZG9jdW1lbnQtPmZyYW1lKCktPnNjcmlwdCgpLnNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>