<?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>84214</bug_id>
          
          <creation_ts>2012-04-17 17:05:35 -0700</creation_ts>
          <short_desc>[BlackBerry] Loading media data with http authentication</short_desc>
          <delta_ts>2012-05-29 20:51:45 -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 BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jonathan Dong">jonathan.dong.webkit</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>leo.yang</cc>
    
    <cc>mfeil</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>604498</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-04-17 17:05:35 -0700</bug_when>
    <thetext>RIM PR: 117618

Add ability to handle http authentication challenge when loading media data.
When MMRPlayer receives a http authentication challenge while loading media file, it should notify browser to find an existing credential in memory or challenge user to provide one; and when this credential is accepted by MMRPlayer, it should notify browser to store the credential in CredentialStorage if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605301</commentid>
    <comment_count>1</comment_count>
      <attachid>137820</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-04-18 19:31:05 -0700</bug_when>
    <thetext>Created attachment 137820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606347</commentid>
    <comment_count>2</comment_count>
      <attachid>137820</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-19 21:48:16 -0700</bug_when>
    <thetext>Comment on attachment 137820
Patch

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

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:685
&gt; +        if (frameView() &amp;&amp; frameView()-&gt;hostWindow())
&gt; +            isConfirmed = frameView()-&gt;hostWindow()-&gt;platformPageClient()-&gt;authenticationChallenge(url, protectionSpace, credential);

that is a layering violation: webcore/platform code should not know about anything outside webcore/platform

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:687
&gt; +            authChallenge.setCredential(string(credential.user().utf8().data()), string(credential.password().utf8().data()), static_cast&lt;MMRAuthChallenge::CredentialPersistence&gt;(credential.persistence()));

do we need string() here? does not it happen implicitly?

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:690
&gt; +        authChallenge.setCredential(string(credential.user().utf8().data()), string(credential.password().utf8().data()), static_cast&lt;MMRAuthChallenge::CredentialPersistence&gt;(credential.persistence()));

ditto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606367</commentid>
    <comment_count>3</comment_count>
      <attachid>137820</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-04-19 22:38:56 -0700</bug_when>
    <thetext>Comment on attachment 137820
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:685
&gt;&gt; +            isConfirmed = frameView()-&gt;hostWindow()-&gt;platformPageClient()-&gt;authenticationChallenge(url, protectionSpace, credential);
&gt; 
&gt; that is a layering violation: webcore/platform code should not know about anything outside webcore/platform

Thanks Antonio, yes here&apos;s a layer violation, and Max has filed a bug https://bugs.webkit.org/show_bug.cgi?id=84291 which intends to solve the very issue. I guess we can let this patch in and fix this violation together with PR 84291, is that acceptable?

&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:687
&gt;&gt; +            authChallenge.setCredential(string(credential.user().utf8().data()), string(credential.password().utf8().data()), static_cast&lt;MMRAuthChallenge::CredentialPersistence&gt;(credential.persistence()));
&gt; 
&gt; do we need string() here? does not it happen implicitly?

Yeah you are right, will remove this in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606379</commentid>
    <comment_count>4</comment_count>
      <attachid>138047</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-04-19 23:08:59 -0700</bug_when>
    <thetext>Created attachment 138047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616577</commentid>
    <comment_count>5</comment_count>
      <attachid>138047</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-04 13:24:59 -0700</bug_when>
    <thetext>Comment on attachment 138047
Patch

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

Still some stuff to clean up.

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:663
&gt; +ProtectionSpace generateProtectionSpaceFromMMRAuthChallenge(const MMRAuthChallenge&amp; authChallenge)

Should be static.

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:667
&gt; +        return ProtectionSpace();

Better maybe ASSERT(url.isValid()); since the call sites already check it, so it should not happen.

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:691
&gt; +    }

How about this? :

if (credential.isEmpty()) {
 if (frameView() &amp;&amp; frameView()-&gt;hostWindow())
     isConfirmed = frameView()-&gt;hostWindow()-&gt;platformPageClient()-&gt;authenticationChallenge(url, protectionSpace, credential);
} else
    isConfirmed = true;

if (isConfirmed)
    authChallenge.setCredential(credential.user().utf8().data(), credential.password().utf8().data(), static_cast&lt;MMRAuthChallenge::CredentialPersistence&gt;(credential.persistence()));

&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:134
&gt; +    virtual void onAuthenticationAccepted(const BlackBerry::Platform::MMRAuthChallenge&amp;);

Can these be const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616784</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-05-04 16:19:14 -0700</bug_when>
    <thetext>Thanks Rob, Joe Mason and me is working on the http authentication refactor these days, I&apos;ll update this patch after the refactor work has done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635859</commentid>
    <comment_count>7</comment_count>
      <attachid>144512</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-05-29 04:23:36 -0700</bug_when>
    <thetext>Created attachment 144512
WIP:minimum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635860</commentid>
    <comment_count>8</comment_count>
      <attachid>144512</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-05-29 04:25:30 -0700</bug_when>
    <thetext>Comment on attachment 144512
WIP:minimum

Sorry, I mistake number :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636711</commentid>
    <comment_count>9</comment_count>
      <attachid>144671</attachid>
    <who name="Jonathan Dong">jonathan.dong.webkit</who>
    <bug_when>2012-05-29 18:48:33 -0700</bug_when>
    <thetext>Created attachment 144671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636784</commentid>
    <comment_count>10</comment_count>
      <attachid>144671</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 20:51:38 -0700</bug_when>
    <thetext>Comment on attachment 144671
Patch

Clearing flags on attachment: 144671

Committed r118887: &lt;http://trac.webkit.org/changeset/118887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636785</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-29 20:51:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137820</attachid>
            <date>2012-04-18 19:31:05 -0700</date>
            <delta_ts>2012-04-19 23:08:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84214-20120419103102.patch</filename>
            <type>text/plain</type>
            <size>10012</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFmZDQ4NGE5ZGFmMWQ1
MDUyOWFmOGJiNGU5MzEwYzMwYjE2MWNlNC4uYjYxNTQzYjMxZDQ0NDEzYzZjYmFlMGEzYjMxNmE5
MmZmMDJmOGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTE4ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIExvYWRpbmcgbWVkaWEgZGF0YSB3aXRoIGh0dHAgYXV0aGVudGljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUklNIFBSOiAx
MTc2MTgKKyAgICAgICAgSW1wbGVtZW50ZWQgaHR0cCBhdXRoZW50aWNhdGlvbiBmZWF0dXJlIGZv
ciBtZWRpYSBieSBpbXBsZW1lbnRpbmcKKyAgICAgICAgdHdvIGludGVyZmFjZSBmdW5jdGlvbnMg
aW4gY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlOgorICAgICAgICBvbkF1dGhlbnRpY2F0aW9uTmVl
ZGVkKCk6IHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gbW1yCisgICAgICAgIGVuZ2lu
ZSByZXF1aXJlcyBodHRwIGF1dGhlbnRpY2F0aW9uLiBXZSBzZWFyY2ggdGhlIENyZWRlbnRpYWxT
dG9yYWdlCisgICAgICAgIHRvIHNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIGV4aXN0aW5nIGNy
ZWRlbnRpYWwgaW5mb3JtYXRpb24sCisgICAgICAgIG9yIGNoYWxsZW5nZSB1c2VyIHRvIHByb3Zp
ZGUgaXQuCisgICAgICAgIE9uQXV0aGVudGljYXRpb25BY2NlcHRlZCgpOiB0aGlzIGZ1bmN0aW9u
IGlzIHRyaWdnZXJlZCB3aGVuIG1tcgorICAgICAgICBlbmdpbmUgYWNjZXB0cyB0aGUgY3JlZGVu
dGlhbCBpbmZvcm1hdGlvbiwgYW5kIHdlIG5lZWQgdG8gc2F2ZQorICAgICAgICBpdCBpbiBDcmVk
ZW50aWFsU3RvcmFnZSBmb3IgbGF0ZXIgdXNlLgorCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3
ZWQgYnkgTWF4IEZlaWwuIDxtZmVpbEBxbnguY29tPgorCisgICAgICAgIE1hbnVhbCB0ZXN0OiBN
YW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50aWNhdGlvbi5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVQcm90ZWN0aW9u
U3BhY2VGcm9tTU1SQXV0aENoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6b25BdXRoZW50aWNhdGlvbk5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25BY2Nl
cHRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGUpOgorCiAy
MDEyLTA0LTE4ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gU2ltcGxpZnkgb2NjbHVzaW9uIHRyYWNrZXIgQVBJIGJ5IHBhc3NpbmcgbGF5
ZXIgaXRlcmF0b3IgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRl
QmxhY2tCZXJyeS5jcHAKaW5kZXggMzBkZTBkM2Y3ZGNlNDg3ODM0ZTc0NzUwZTFlMmIwMmZjYzY5
ZWE2Ni4uNDk2ZDhmMDM5NDRlZDExNzBiNTQyMDMyOGJmOWUyNTY2NzdmOTk3NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC0yMiw2
ICsyMiw4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogCiAj
aW5jbHVkZSAiQ29va2llTWFuYWdlci5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKKyNpbmNs
dWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0zMCw2ICszMiw3
IEBACiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25T
cGFjZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIK
ICNpbmNsdWRlICJXZWJQYWdlQ2xpZW50LmgiCkBAIC02NTcsNiArNjYwLDUwIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpvbkJ1ZmZlcmluZyhib29sIGZsYWcpCiB9CiAjZW5kaWYKIAorUHJv
dGVjdGlvblNwYWNlIGdlbmVyYXRlUHJvdGVjdGlvblNwYWNlRnJvbU1NUkF1dGhDaGFsbGVuZ2Uo
Y29uc3QgTU1SQXV0aENoYWxsZW5nZSYgYXV0aENoYWxsZW5nZSkKK3sKKyAgICBLVVJMIHVybChQ
YXJzZWRVUkxTdHJpbmcsIFN0cmluZyhhdXRoQ2hhbGxlbmdlLnVybCgpLmNfc3RyKCkpKTsKKyAg
ICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UoKTsK
KyAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCksIHVybC5wb3J0KCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJU
eXBlPihhdXRoQ2hhbGxlbmdlLnNlcnZlclR5cGUoKSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRoQ2hhbGxlbmdlLnJlYWxtKCkuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lPihh
dXRoQ2hhbGxlbmdlLmF1dGhTY2hlbWUoKSkpOworfQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0
ZTo6b25BdXRoZW50aWNhdGlvbk5lZWRlZChNTVJBdXRoQ2hhbGxlbmdlJiBhdXRoQ2hhbGxlbmdl
KQoreworICAgIEtVUkwgdXJsKFBhcnNlZFVSTFN0cmluZywgU3RyaW5nKGF1dGhDaGFsbGVuZ2Uu
dXJsKCkuY19zdHIoKSkpOworICAgIGlmICghdXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSA9IGdlbmVyYXRl
UHJvdGVjdGlvblNwYWNlRnJvbU1NUkF1dGhDaGFsbGVuZ2UoYXV0aENoYWxsZW5nZSk7CisgICAg
Q3JlZGVudGlhbCBjcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmdldChwcm90ZWN0aW9u
U3BhY2UpOworICAgIGJvb2wgaXNDb25maXJtZWQgPSBmYWxzZTsKKyAgICBpZiAoY3JlZGVudGlh
bC5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKGZyYW1lVmlldygpICYmIGZyYW1lVmlldygpLT5o
b3N0V2luZG93KCkpCisgICAgICAgICAgICBpc0NvbmZpcm1lZCA9IGZyYW1lVmlldygpLT5ob3N0
V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1
cmwsIHByb3RlY3Rpb25TcGFjZSwgY3JlZGVudGlhbCk7CisgICAgICAgIGlmIChpc0NvbmZpcm1l
ZCkKKyAgICAgICAgICAgIGF1dGhDaGFsbGVuZ2Uuc2V0Q3JlZGVudGlhbChzdHJpbmcoY3JlZGVu
dGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSksIHN0cmluZyhjcmVkZW50aWFsLnBhc3N3b3JkKCku
dXRmOCgpLmRhdGEoKSksIHN0YXRpY19jYXN0PE1NUkF1dGhDaGFsbGVuZ2U6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZT4oY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpKSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgaXNDb25maXJtZWQgPSB0cnVlOworICAgICAgICBhdXRoQ2hhbGxlbmdlLnNldENyZWRl
bnRpYWwoc3RyaW5nKGNyZWRlbnRpYWwudXNlcigpLnV0ZjgoKS5kYXRhKCkpLCBzdHJpbmcoY3Jl
ZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpLCBzdGF0aWNfY2FzdDxNTVJBdXRoQ2hh
bGxlbmdlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSkp
OworICAgIH0KKyAgICByZXR1cm4gaXNDb25maXJtZWQ7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQoY29uc3QgTU1SQXV0aENoYWxsZW5nZSYg
YXV0aENoYWxsZW5nZSkKK3sKKyAgICBLVVJMIHVybChQYXJzZWRVUkxTdHJpbmcsIFN0cmluZyhh
dXRoQ2hhbGxlbmdlLnVybCgpLmNfc3RyKCkpKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2UgPSBn
ZW5lcmF0ZVByb3RlY3Rpb25TcGFjZUZyb21NTVJBdXRoQ2hhbGxlbmdlKGF1dGhDaGFsbGVuZ2Up
OworICAgIENyZWRlbnRpYWwgc2F2ZWRDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6Omdl
dChwcm90ZWN0aW9uU3BhY2UpOworICAgIGlmIChzYXZlZENyZWRlbnRpYWwuaXNFbXB0eSgpKQor
ICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6c2V0KENyZWRlbnRpYWwoYXV0aENoYWxsZW5nZS51
c2VybmFtZSgpLmNfc3RyKCksIGF1dGhDaGFsbGVuZ2UucGFzc3dvcmQoKS5jX3N0cigpLCBzdGF0
aWNfY2FzdDxDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGF1dGhDaGFsbGVuZ2UucGVyc2lzdGVuY2Uo
KSkpLCBwcm90ZWN0aW9uU3BhY2UsIHVybCk7Cit9CisKIGludCBNZWRpYVBsYXllclByaXZhdGU6
OnNob3dFcnJvckRpYWxvZyhNTVJQbGF5ZXI6OkVycm9yIHR5cGUpCiB7CiAgICAgdXNpbmcgbmFt
ZXNwYWNlIEJsYWNrQmVycnk6OldlYktpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5LmgKaW5kZXggMTg2ZDc3YzMwNTFiNTY3ZDBmYzFjZTEwOGI1ZWNk
YzZmOWE5Yjc0YS4uNmQyMWUyNmVlMTE4MjFiOTUyZDkzYjBmOTBmNmQ0Y2VhNzE5Yzg2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRp
YVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKQEAgLTEz
MCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIHZpcnR1YWwgdm9pZCBvbkJ1ZmZlcmluZyhib29sKTsKICNlbmRpZgorICAgIHZpcnR1YWwg
Ym9vbCBvbkF1dGhlbnRpY2F0aW9uTmVlZGVkKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpNTVJBdXRo
Q2hhbGxlbmdlJik7CisgICAgdmlydHVhbCB2b2lkIG9uQXV0aGVudGljYXRpb25BY2NlcHRlZChj
b25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TU1SQXV0aENoYWxsZW5nZSYpOwogCiAgICAgdmly
dHVhbCBib29sIGlzRnVsbHNjcmVlbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1RhYlZp
c2libGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBh
ZDc2NDQ0NzE2NTFmMjRjNTQ4ZmEyOGMwYTVkZTBkZjgzNzRmOGYzLi5hYjhiZDhmNGRjNWU5ZGQw
OTQ0ODQ2Nzk4MmNlMGI5MzA1NTliODdkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDQtMTggIEpvbmF0aGFuIERvbmcgIDxqb25h
dGhhbi5kb25nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0gTG9h
ZGluZyBtZWRpYSBkYXRhIHdpdGggaHR0cCBhdXRoZW50aWNhdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG1hbnVhbCB0ZXN0IGNhc2Ug
d2hpY2ggbmVlZHMgdXNlciB0byBwcm92aWRlIGEgSFRUUCBzZXJ2ZXIKKyAgICAgICAgd2l0aCBI
VFRQIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgd2hlbiBsb2FkaW5nIHRoZSBzcGVjaWZpZWQgbWVk
aWEKKyAgICAgICAgcmVzb3VyY2UuIFRoZSB0ZXN0IGNhc2Ugd2lsbCB0ZXN0IGlmIHRoZSBtZWRp
YSByZXNvdXJjZSBpcyBzdWNjZXNzZnVsbHkKKyAgICAgICAgbG9hZGVkLgorCisgICAgICAgICog
TWFudWFsVGVzdHMvYmxhY2tiZXJyeS92aWRlby1sb2FkLXdpdGgtYXV0aGVudGljYXRpb24uaHRt
bDogQWRkZWQuCisKIDIwMTItMDQtMTggIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtlXSBVc2UganNjIHRhcmdldCBpbnN0
ZWFkIG9mIE9OTFlfQlVJTERfSkFWQVNDUklQVENPUkUKZGlmZiAtLWdpdCBhL01hbnVhbFRlc3Rz
L2JsYWNrYmVycnkvdmlkZW8tbG9hZC13aXRoLWF1dGhlbnRpY2F0aW9uLmh0bWwgYi9NYW51YWxU
ZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50aWNhdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEyMjczZjQ3MDM4MjQyODAzMmM0ZGZlMmEzOTA3ZTI0MDI1MGU2N2EKLS0tIC9kZXYv
bnVsbAorKysgYi9NYW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50
aWNhdGlvbi5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8dGl0bGU+dmlkZW8tbG9hZC13aXRoLWF1dGhlbnRpY2F0aW9uPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+Cisg
IFRoaXMgdGVzdCBjYXNlIGlzIGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODQyMTQiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDIxNDwvYT48YnI+CisgIFRoaXMgdGVzdCBjYXNlIGlzIGFtaW5nIGF0IHRlc3Rpbmcg
dmlkZW8gbG9hZGluZyB3aXRoIGh0dHAgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiBUbyB1c2Ug
dGhpcyB0ZXN0IGNhc2UgeW91IHNob3VsZCBzZXR1cCB5b3VyIGFwYWNoZTIgaHR0cCBzZXJ2ZXIK
KyAgd2l0aCBodHRwIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgZmlyc3QuPGJyPgorICA8cD4KKyAg
ICA8aDM+V2F5cyB0byBzZXR1cCB0aGUgYXBhY2hlMiBodHRwIHNlcnZlciB3aXRoIGh0dHAgYXV0
aGVudGljYXRpb24gc3VwcG9ydDwvaDM+CisgICAgPG9sPgorICAgICAgPGxpPkFkZCAiQWxsb3dP
dmVycmlkZSBBdXRoQ29uZmlnIiB0byAmbHQ7RGlyZWN0b3J5Jmd0OyBzZXR0aW5nIGluIHlvdXIg
c2l0ZSBjb25maWd1cmF0aW9uIGZpbGU7PC9saT4KKyAgICAgIDxsaT5DcmVhdGUgdGhlIHBhc3N3
b3JkIGZpbGUgdXNpbmcgY29tbWFuZDogPGNvZGU+aHRwYXNzd2QgLWMgJmx0O3Bhc3NvcmRfZmls
ZW5hbWUmZ3Q7ICZsdDt1c2VybmFtZSZndDs8L2NvZGU+LCBhbmQgcHV0IHRoaXMgZmlsZSBpbnRv
ICZsdDtTZXJ2ZXJSb290Jmd0Ozs8L2xpPgorICAgICAgPGxpPkNyZWF0ZSBhIGRpcmVjdG9yeSB1
bmRlciB5b3VyIHNlcnZlciAmbHQ7RGlyZWN0b3J5Jmd0OywgYW5kIGNyZWF0ZSB0aGUgZmlsZSAu
aHRhY2Nlc3MgaW4gdGhpcyBkaXJlY3Rvcnk7PC9saT4KKyAgICAgIDxsaT5Db25maWd1cmUgdGhl
IC5odGFjY2VzcyBmaWxlIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50OgorICAgICAgICA8cHJl
PkF1dGhUeXBlICZsdDtCYXNpY3xEaWdlc3QmZ3Q7CitBdXRoTmFtZSAiVmlkZW8gSFRUUCBBdXRo
ZW50aWNhdGlvbiIKK0F1dGhVc2VyRmlsZSAmbHQ7L3BhdGgvdG8vdGhlL3Bhc3N3b3JkL2ZpbGUm
Z3Q7CitSZXF1aXJlIHVzZXIgJmx0O3VzZXJuYW1lJmd0OzwvcHJlPgorICAgICAgPC9saT4KKyAg
ICAgIDxsaT5QdXQgeW91ciB0ZXN0IHZpZGVvIGZpbGUgaW50byB0aGlzIGRpcmVjdG9yeSwgYW5k
IHJlc3RhcnQgeW91ciBhcGFjaGUyIGh0dHAgc2VydmVyLjwvbGk+CisgICAgPC9vbD4KKyAgICA8
cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IGNvbmZpZ3VyaW5nIGFwYWNoZTIgaHR0cCBhdXRoZW50
aWNhdGlvbiwgcGxlYXNlIHJlZmVyIHRvIGFwYWNoZSAyLjAgZG9jdW1lbnQ6IDxhIGhyZWY9Imh0
dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi4wL2hvd3RvL2F1dGguaHRtbCI+QXV0aGVudGlj
YXRpb24sIEF1dGhvcml6YXRpb24gYW5kIEFjY2VzcyBDb250cm9sPC9hPi48L3A+CisgIDwvcD4K
KyAgPHA+CisgICAgPGgzPldheXMgdG8gdGVzdDwvaDM+CisgICAgPG9sPgorICAgICAgPGxpPlNl
dHVwIHlvdXIgYXBhY2hlMiBodHRwIHNlcnZlciBhbmQgcHJlcGFyZSB0aGUgdmlkZW8gZmlsZSBh
cyBtZW50aW9uZWQgYWJvdmU7PC9saT4KKyAgICAgIDxsaT5FbnRlciB0aGUgbGluayBwb2ludGlu
ZyB0byB0aGUgdmlkZW8gZmlsZSBpbiB0aGUgIlZpZGVvIFNvdXJjZSIgdGV4dCBhcmVhIGJlbG93
OzwvbGk+CisgICAgICA8bGk+VGhlbiBwcmVzcyBsb2FkIGJ1dHRvbiwgYW5kIGZpbGwgdGhlIGF1
dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBwb3AgdXAgZGlhbG9nIHdpdGggdGhlIGNyZWRlbnRpYWwg
aW5mb3JtYXRpb24gY3JlYXRlZCBiZWZvcmUsIHRoZW4gd2FpdCBmb3IgdGhlIHJlc3VsdC48L2xp
PgorICAgIDwvb2w+CisgIDwvcD4KKzwvcD4KKzxociAvPgorPGRpdj4KKyAgICBWaWRlbyBTb3Vy
Y2U6CisgICAgPGlucHV0IHR5cGU9InVybCIgaWQ9InVybCIgbmFtZT0idmlkZW9TcmMiIHNpemU9
IjEwMCI+PC9pbnB1dD48YnI+CisgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkxvYWQi
IG9uY2xpY2s9ImxvYWQoKSIgLz4KKzwvZGl2PgorPHZpZGVvIGlkPSJ2aWRlbyIgaGlkZGVuPSJo
aWRkZW4iPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gb25Mb2FkZWQoKQorICAgIHsKKyAgICAgICAgbG9nUmVzdWx0KHRydWUsICJWaWRlbyBm
aWxlIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHRlc3QgY2FzZSBwYXNzZWQuIik7CisgICAgICAgIGVu
ZFRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkVycm9yKCkKKyAgICB7CisgICAgICAg
IGZhaWxUZXN0KCJMb2FkIHZpZGVvIGZpbGUgZXJyb3IsIHRlc3QgY2FzZSBmYWlsZWQuIik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbG9hZCgpCisgICAgeworICAgICAgICBmaW5kTWVkaWFFbGVt
ZW50KCk7CisgICAgICAgIHdhaXRGb3JFdmVudCgibG9hZHN0YXJ0Iik7CisgICAgICAgIHdhaXRG
b3JFdmVudCgibG9hZGVkZGF0YSIsIG9uTG9hZGVkKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCJl
cnJvciIsIG9uRXJyb3IpOworCisgICAgICAgIG1lZGlhRWxlbWVudC5zcmMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidXJsIikudmFsdWU7CisgICAgICAgIG1lZGlhRWxlbWVudC5sb2FkKCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138047</attachid>
            <date>2012-04-19 23:08:59 -0700</date>
            <delta_ts>2012-05-29 04:23:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84214-20120420140857.patch</filename>
            <type>text/plain</type>
            <size>9979</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg0MTAwNGZhYjhkZDdk
ZjdjYzA4MDFlNmVhZGE2NTczNjZiMGNmMi4uNTdjN2JiODFiYjQxNWIyMGNkOGEyNWU5Y2FkOTIz
ODJiZjRmMzg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTE5ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIExvYWRpbmcgbWVkaWEgZGF0YSB3aXRoIGh0dHAgYXV0aGVudGljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUklNIFBSOiAx
MTc2MTgKKyAgICAgICAgSW1wbGVtZW50ZWQgaHR0cCBhdXRoZW50aWNhdGlvbiBmZWF0dXJlIGZv
ciBtZWRpYSBieSBpbXBsZW1lbnRpbmcKKyAgICAgICAgdHdvIGludGVyZmFjZSBmdW5jdGlvbnMg
aW4gY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlOgorICAgICAgICBvbkF1dGhlbnRpY2F0aW9uTmVl
ZGVkKCk6IHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gbW1yCisgICAgICAgIGVuZ2lu
ZSByZXF1aXJlcyBodHRwIGF1dGhlbnRpY2F0aW9uLiBXZSBzZWFyY2ggdGhlIENyZWRlbnRpYWxT
dG9yYWdlCisgICAgICAgIHRvIHNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIGV4aXN0aW5nIGNy
ZWRlbnRpYWwgaW5mb3JtYXRpb24sCisgICAgICAgIG9yIGNoYWxsZW5nZSB1c2VyIHRvIHByb3Zp
ZGUgaXQuCisgICAgICAgIE9uQXV0aGVudGljYXRpb25BY2NlcHRlZCgpOiB0aGlzIGZ1bmN0aW9u
IGlzIHRyaWdnZXJlZCB3aGVuIG1tcgorICAgICAgICBlbmdpbmUgYWNjZXB0cyB0aGUgY3JlZGVu
dGlhbCBpbmZvcm1hdGlvbiwgYW5kIHdlIG5lZWQgdG8gc2F2ZQorICAgICAgICBpdCBpbiBDcmVk
ZW50aWFsU3RvcmFnZSBmb3IgbGF0ZXIgdXNlLgorCisgICAgICAgIEludGVybmFsbHkgcmV2aWV3
ZWQgYnkgTWF4IEZlaWwuIDxtZmVpbEBxbnguY29tPgorCisgICAgICAgIE1hbnVhbCB0ZXN0OiBN
YW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50aWNhdGlvbi5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVQcm90ZWN0aW9u
U3BhY2VGcm9tTU1SQXV0aENoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6b25BdXRoZW50aWNhdGlvbk5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25BY2Nl
cHRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGUpOgorCiAy
MDEyLTA0LTE5ICBUYXkgR3JpZ2cgIDx0Z3JpZ2dAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gVXBkYXRlIEhUVFAgY29ubmVjdGlvbiBwZXIgaG9zdCBsaW1pdCBpbiBSZXNvdXJjZVJl
cXVlc3RCbGFja0JlcnJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVC
bGFja0JlcnJ5LmNwcAppbmRleCAzMGRlMGQzZjdkY2U0ODc4MzRlNzQ3NTBlMWUyYjAyZmNjNjll
YTY2Li42NDA5MWM2NzgzYTUzMmMzY2FjY2Y5ZWU1MWRjMDU2YWZiZjVlMTg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAgLTIyLDYg
KzIyLDggQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgiCiAKICNp
bmNsdWRlICJDb29raWVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiQ3JlZGVudGlhbC5oIgorI2luY2x1
ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTMwLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUHJvdGVjdGlvblNw
YWNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgog
I2luY2x1ZGUgIldlYlBhZ2VDbGllbnQuaCIKQEAgLTY1Nyw2ICs2NjAsNTAgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGU6Om9uQnVmZmVyaW5nKGJvb2wgZmxhZykKIH0KICNlbmRpZgogCitQcm90
ZWN0aW9uU3BhY2UgZ2VuZXJhdGVQcm90ZWN0aW9uU3BhY2VGcm9tTU1SQXV0aENoYWxsZW5nZShj
b25zdCBNTVJBdXRoQ2hhbGxlbmdlJiBhdXRoQ2hhbGxlbmdlKQoreworICAgIEtVUkwgdXJsKFBh
cnNlZFVSTFN0cmluZywgU3RyaW5nKGF1dGhDaGFsbGVuZ2UudXJsKCkuY19zdHIoKSkpOworICAg
IGlmICghdXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZSgpOwor
ICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKSwgdXJsLnBvcnQoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFByb3RlY3Rpb25TcGFjZVNlcnZlclR5
cGU+KGF1dGhDaGFsbGVuZ2Uuc2VydmVyVHlwZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dGhDaGFsbGVuZ2UucmVhbG0oKS5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU+KGF1
dGhDaGFsbGVuZ2UuYXV0aFNjaGVtZSgpKSk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
OjpvbkF1dGhlbnRpY2F0aW9uTmVlZGVkKE1NUkF1dGhDaGFsbGVuZ2UmIGF1dGhDaGFsbGVuZ2Up
Cit7CisgICAgS1VSTCB1cmwoUGFyc2VkVVJMU3RyaW5nLCBTdHJpbmcoYXV0aENoYWxsZW5nZS51
cmwoKS5jX3N0cigpKSk7CisgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBQcm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlID0gZ2VuZXJhdGVQ
cm90ZWN0aW9uU3BhY2VGcm9tTU1SQXV0aENoYWxsZW5nZShhdXRoQ2hhbGxlbmdlKTsKKyAgICBD
cmVkZW50aWFsIGNyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6Z2V0KHByb3RlY3Rpb25T
cGFjZSk7CisgICAgYm9vbCBpc0NvbmZpcm1lZCA9IGZhbHNlOworICAgIGlmIChjcmVkZW50aWFs
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoZnJhbWVWaWV3KCkgJiYgZnJhbWVWaWV3KCktPmhv
c3RXaW5kb3coKSkKKyAgICAgICAgICAgIGlzQ29uZmlybWVkID0gZnJhbWVWaWV3KCktPmhvc3RX
aW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVy
bCwgcHJvdGVjdGlvblNwYWNlLCBjcmVkZW50aWFsKTsKKyAgICAgICAgaWYgKGlzQ29uZmlybWVk
KQorICAgICAgICAgICAgYXV0aENoYWxsZW5nZS5zZXRDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNl
cigpLnV0ZjgoKS5kYXRhKCksIGNyZWRlbnRpYWwucGFzc3dvcmQoKS51dGY4KCkuZGF0YSgpLCBz
dGF0aWNfY2FzdDxNTVJBdXRoQ2hhbGxlbmdlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRl
bnRpYWwucGVyc2lzdGVuY2UoKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlzQ29uZmlybWVk
ID0gdHJ1ZTsKKyAgICAgICAgYXV0aENoYWxsZW5nZS5zZXRDcmVkZW50aWFsKGNyZWRlbnRpYWwu
dXNlcigpLnV0ZjgoKS5kYXRhKCksIGNyZWRlbnRpYWwucGFzc3dvcmQoKS51dGY4KCkuZGF0YSgp
LCBzdGF0aWNfY2FzdDxNTVJBdXRoQ2hhbGxlbmdlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNy
ZWRlbnRpYWwucGVyc2lzdGVuY2UoKSkpOworICAgIH0KKyAgICByZXR1cm4gaXNDb25maXJtZWQ7
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQo
Y29uc3QgTU1SQXV0aENoYWxsZW5nZSYgYXV0aENoYWxsZW5nZSkKK3sKKyAgICBLVVJMIHVybChQ
YXJzZWRVUkxTdHJpbmcsIFN0cmluZyhhdXRoQ2hhbGxlbmdlLnVybCgpLmNfc3RyKCkpKTsKKyAg
ICBpZiAoIXVybC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFByb3RlY3Rpb25T
cGFjZSBwcm90ZWN0aW9uU3BhY2UgPSBnZW5lcmF0ZVByb3RlY3Rpb25TcGFjZUZyb21NTVJBdXRo
Q2hhbGxlbmdlKGF1dGhDaGFsbGVuZ2UpOworICAgIENyZWRlbnRpYWwgc2F2ZWRDcmVkZW50aWFs
ID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmdldChwcm90ZWN0aW9uU3BhY2UpOworICAgIGlmIChzYXZl
ZENyZWRlbnRpYWwuaXNFbXB0eSgpKQorICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6c2V0KENy
ZWRlbnRpYWwoYXV0aENoYWxsZW5nZS51c2VybmFtZSgpLmNfc3RyKCksIGF1dGhDaGFsbGVuZ2Uu
cGFzc3dvcmQoKS5jX3N0cigpLCBzdGF0aWNfY2FzdDxDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGF1
dGhDaGFsbGVuZ2UucGVyc2lzdGVuY2UoKSkpLCBwcm90ZWN0aW9uU3BhY2UsIHVybCk7Cit9CisK
IGludCBNZWRpYVBsYXllclByaXZhdGU6OnNob3dFcnJvckRpYWxvZyhNTVJQbGF5ZXI6OkVycm9y
IHR5cGUpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIEJsYWNrQmVycnk6OldlYktpdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKaW5kZXggMTg2ZDc3
YzMwNTFiNTY3ZDBmYzFjZTEwOGI1ZWNkYzZmOWE5Yjc0YS4uNmQyMWUyNmVlMTE4MjFiOTUyZDkz
YjBmOTBmNmQ0Y2VhNzE5Yzg2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBvbkJ1ZmZlcmluZyhib29s
KTsKICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBvbkF1dGhlbnRpY2F0aW9uTmVlZGVkKEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpNTVJBdXRoQ2hhbGxlbmdlJik7CisgICAgdmlydHVhbCB2b2lkIG9u
QXV0aGVudGljYXRpb25BY2NlcHRlZChjb25zdCBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TU1SQXV0
aENoYWxsZW5nZSYpOwogCiAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc1RhYlZpc2libGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhZDc2NDQ0NzE2NTFmMjRjNTQ4ZmEyOGMwYTVkZTBkZjgz
NzRmOGYzLi5jZTIzMGJjNmIyMmY1NDYwMmY5ZWY4ODljNGI3NDFmM2Q5MmI0YThmIDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDQt
MTkgIEpvbmF0aGFuIERvbmcgIDxqb25hdGhhbi5kb25nQHRvcmNobW9iaWxlLmNvbS5jbj4KKwor
ICAgICAgICBbQmxhY2tCZXJyeV0gTG9hZGluZyBtZWRpYSBkYXRhIHdpdGggaHR0cCBhdXRoZW50
aWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODQyMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBhIG1hbnVhbCB0ZXN0IGNhc2Ugd2hpY2ggbmVlZHMgdXNlciB0byBwcm92aWRlIGEgSFRU
UCBzZXJ2ZXIKKyAgICAgICAgd2l0aCBIVFRQIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgd2hlbiBs
b2FkaW5nIHRoZSBzcGVjaWZpZWQgbWVkaWEKKyAgICAgICAgcmVzb3VyY2UuIFRoZSB0ZXN0IGNh
c2Ugd2lsbCB0ZXN0IGlmIHRoZSBtZWRpYSByZXNvdXJjZSBpcyBzdWNjZXNzZnVsbHkKKyAgICAg
ICAgbG9hZGVkLgorCisgICAgICAgICogTWFudWFsVGVzdHMvYmxhY2tiZXJyeS92aWRlby1sb2Fk
LXdpdGgtYXV0aGVudGljYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTItMDQtMTggIFRoaWFnbyBN
YXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NN
YWtlXSBVc2UganNjIHRhcmdldCBpbnN0ZWFkIG9mIE9OTFlfQlVJTERfSkFWQVNDUklQVENPUkUK
ZGlmZiAtLWdpdCBhL01hbnVhbFRlc3RzL2JsYWNrYmVycnkvdmlkZW8tbG9hZC13aXRoLWF1dGhl
bnRpY2F0aW9uLmh0bWwgYi9NYW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1h
dXRoZW50aWNhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMjczZjQ3MDM4MjQyODAzMmM0ZGZlMmEz
OTA3ZTI0MDI1MGU2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9NYW51YWxUZXN0cy9ibGFja2JlcnJ5
L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50aWNhdGlvbi5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwh
RE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+dmlkZW8tbG9hZC13aXRo
LWF1dGhlbnRpY2F0aW9uPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tdGVzdC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+CisgIFRoaXMgdGVzdCBjYXNlIGlzIGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMTQiPmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDIxNDwvYT48YnI+CisgIFRoaXMgdGVzdCBj
YXNlIGlzIGFtaW5nIGF0IHRlc3RpbmcgdmlkZW8gbG9hZGluZyB3aXRoIGh0dHAgYXV0aGVudGlj
YXRpb24gY2hhbGxlbmdlLiBUbyB1c2UgdGhpcyB0ZXN0IGNhc2UgeW91IHNob3VsZCBzZXR1cCB5
b3VyIGFwYWNoZTIgaHR0cCBzZXJ2ZXIKKyAgd2l0aCBodHRwIGF1dGhlbnRpY2F0aW9uIHN1cHBv
cnQgZmlyc3QuPGJyPgorICA8cD4KKyAgICA8aDM+V2F5cyB0byBzZXR1cCB0aGUgYXBhY2hlMiBo
dHRwIHNlcnZlciB3aXRoIGh0dHAgYXV0aGVudGljYXRpb24gc3VwcG9ydDwvaDM+CisgICAgPG9s
PgorICAgICAgPGxpPkFkZCAiQWxsb3dPdmVycmlkZSBBdXRoQ29uZmlnIiB0byAmbHQ7RGlyZWN0
b3J5Jmd0OyBzZXR0aW5nIGluIHlvdXIgc2l0ZSBjb25maWd1cmF0aW9uIGZpbGU7PC9saT4KKyAg
ICAgIDxsaT5DcmVhdGUgdGhlIHBhc3N3b3JkIGZpbGUgdXNpbmcgY29tbWFuZDogPGNvZGU+aHRw
YXNzd2QgLWMgJmx0O3Bhc3NvcmRfZmlsZW5hbWUmZ3Q7ICZsdDt1c2VybmFtZSZndDs8L2NvZGU+
LCBhbmQgcHV0IHRoaXMgZmlsZSBpbnRvICZsdDtTZXJ2ZXJSb290Jmd0Ozs8L2xpPgorICAgICAg
PGxpPkNyZWF0ZSBhIGRpcmVjdG9yeSB1bmRlciB5b3VyIHNlcnZlciAmbHQ7RGlyZWN0b3J5Jmd0
OywgYW5kIGNyZWF0ZSB0aGUgZmlsZSAuaHRhY2Nlc3MgaW4gdGhpcyBkaXJlY3Rvcnk7PC9saT4K
KyAgICAgIDxsaT5Db25maWd1cmUgdGhlIC5odGFjY2VzcyBmaWxlIHdpdGggdGhlIGZvbGxvd2lu
ZyBjb250ZW50OgorICAgICAgICA8cHJlPkF1dGhUeXBlICZsdDtCYXNpY3xEaWdlc3QmZ3Q7CitB
dXRoTmFtZSAiVmlkZW8gSFRUUCBBdXRoZW50aWNhdGlvbiIKK0F1dGhVc2VyRmlsZSAmbHQ7L3Bh
dGgvdG8vdGhlL3Bhc3N3b3JkL2ZpbGUmZ3Q7CitSZXF1aXJlIHVzZXIgJmx0O3VzZXJuYW1lJmd0
OzwvcHJlPgorICAgICAgPC9saT4KKyAgICAgIDxsaT5QdXQgeW91ciB0ZXN0IHZpZGVvIGZpbGUg
aW50byB0aGlzIGRpcmVjdG9yeSwgYW5kIHJlc3RhcnQgeW91ciBhcGFjaGUyIGh0dHAgc2VydmVy
LjwvbGk+CisgICAgPC9vbD4KKyAgICA8cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IGNvbmZpZ3Vy
aW5nIGFwYWNoZTIgaHR0cCBhdXRoZW50aWNhdGlvbiwgcGxlYXNlIHJlZmVyIHRvIGFwYWNoZSAy
LjAgZG9jdW1lbnQ6IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi4wL2hv
d3RvL2F1dGguaHRtbCI+QXV0aGVudGljYXRpb24sIEF1dGhvcml6YXRpb24gYW5kIEFjY2VzcyBD
b250cm9sPC9hPi48L3A+CisgIDwvcD4KKyAgPHA+CisgICAgPGgzPldheXMgdG8gdGVzdDwvaDM+
CisgICAgPG9sPgorICAgICAgPGxpPlNldHVwIHlvdXIgYXBhY2hlMiBodHRwIHNlcnZlciBhbmQg
cHJlcGFyZSB0aGUgdmlkZW8gZmlsZSBhcyBtZW50aW9uZWQgYWJvdmU7PC9saT4KKyAgICAgIDxs
aT5FbnRlciB0aGUgbGluayBwb2ludGluZyB0byB0aGUgdmlkZW8gZmlsZSBpbiB0aGUgIlZpZGVv
IFNvdXJjZSIgdGV4dCBhcmVhIGJlbG93OzwvbGk+CisgICAgICA8bGk+VGhlbiBwcmVzcyBsb2Fk
IGJ1dHRvbiwgYW5kIGZpbGwgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBwb3AgdXAgZGlh
bG9nIHdpdGggdGhlIGNyZWRlbnRpYWwgaW5mb3JtYXRpb24gY3JlYXRlZCBiZWZvcmUsIHRoZW4g
d2FpdCBmb3IgdGhlIHJlc3VsdC48L2xpPgorICAgIDwvb2w+CisgIDwvcD4KKzwvcD4KKzxociAv
PgorPGRpdj4KKyAgICBWaWRlbyBTb3VyY2U6CisgICAgPGlucHV0IHR5cGU9InVybCIgaWQ9InVy
bCIgbmFtZT0idmlkZW9TcmMiIHNpemU9IjEwMCI+PC9pbnB1dD48YnI+CisgICAgPGlucHV0IHR5
cGU9ImJ1dHRvbiIgdmFsdWU9IkxvYWQiIG9uY2xpY2s9ImxvYWQoKSIgLz4KKzwvZGl2PgorPHZp
ZGVvIGlkPSJ2aWRlbyIgaGlkZGVuPSJoaWRkZW4iPjwvdmlkZW8+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gb25Mb2FkZWQoKQorICAgIHsKKyAgICAgICAg
bG9nUmVzdWx0KHRydWUsICJWaWRlbyBmaWxlIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHRlc3QgY2Fz
ZSBwYXNzZWQuIik7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBv
bkVycm9yKCkKKyAgICB7CisgICAgICAgIGZhaWxUZXN0KCJMb2FkIHZpZGVvIGZpbGUgZXJyb3Is
IHRlc3QgY2FzZSBmYWlsZWQuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZCgpCisgICAg
eworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgIHdhaXRGb3JFdmVudCgibG9h
ZHN0YXJ0Iik7CisgICAgICAgIHdhaXRGb3JFdmVudCgibG9hZGVkZGF0YSIsIG9uTG9hZGVkKTsK
KyAgICAgICAgd2FpdEZvckV2ZW50KCJlcnJvciIsIG9uRXJyb3IpOworCisgICAgICAgIG1lZGlh
RWxlbWVudC5zcmMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXJsIikudmFsdWU7CisgICAg
ICAgIG1lZGlhRWxlbWVudC5sb2FkKCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144512</attachid>
            <date>2012-05-29 04:23:36 -0700</date>
            <delta_ts>2012-05-29 04:25:29 -0700</delta_ts>
            <desc>WIP:minimum</desc>
            <filename>bug-84214-20120529202335.patch</filename>
            <type>text/plain</type>
            <size>13268</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDA5YjJjNTY0MDkyOTUz
MTQ4MWRlODk0MmYwMmNhMTc2ZTNkMThmMC4uYjRjNGY3MDQ2OGRkNzUyZWU3NTg0NmNjZDgzNjc5
NGIzMmE5NGM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA1LTI5ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0g
TG9hZGluZyBtZWRpYSBkYXRhIHdpdGggaHR0cCBhdXRoZW50aWNhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZnkgZXdrX3ZpZXcgYW5kIGFk
ZCBld2tfY29udGV4dCB0byBwcm92aWRlIGEgaGlnaCBsZXZlbCBXZWJLaXQyIEFQSQorICAgICAg
ICB0aGF0IHdyYXBzIHRoZSBDIEFQSSBmb3IgRWZsIHBvcnQuCisgICAgICAgIEluIGFkZGl0aW9u
LCBtYWtlIHRoZW0gaW5zdGFsbGFibGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAg
ICAgICh1cGRhdGVVUkkpOgorICAgICAgICAoZXdrVmlld0Jhc2VBZGQpOgorICAgICAgICAoZXdr
Vmlld0dldFBhZ2UpOgorICAgICAgICAoZXdrX3ZpZXdfYWRkX3dpdGhfY29udGV4dCk6CisgICAg
ICAgIChld2tfdmlld19hZGQpOgorICAgICAgICAoZXdrX3ZpZXdfdXJpX3NldCk6CisgICAgICAg
IChld2tfdmlld191cmlfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5oOgorCiAyMDEyLTA1LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgcmV0dXJuIHZhbHVlIGluZm9ybWF0aW9uIHRvIFdl
YktpdFdlYlZpZXc6OmxvYWQtZmFpbGVkIHNpZ25hbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CmluZGV4IDlmZTQzMmFhNzY5YzZmMTMzNzQyMTBiMzJhMDg4ZDM5ZDNlOTc4NjEuLmMx
YTA4Y2Y2NDA0NGM0MTE1OTgzZWJjMWY5ZWExYmVjNzAzOTQwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMu
dHh0CkBAIC01MTAsNyArNTEwLDYgQEAgU0VUKFdlYktpdDJfTElCUkFSSUVTCiAgICAgJHtXZWJD
b3JlX0xJQlJBUllfTkFNRX0KICkKIAotU0VUKFdlYlByb2Nlc3NfTkFNRSAuLi9iaW4vV2ViUHJv
Y2VzcykKIFNFVChXZWJQcm9jZXNzX1NPVVJDRVMgIiIpCiAKIFNFVChXZWJQcm9jZXNzX0xJQlJB
UklFUwpAQCAtNTMzLDE1ICs1MzIsMTcgQEAgQUREX0RFUEVOREVOQ0lFUygke1dlYktpdDJfTElC
UkFSWV9OQU1FfSAke0ZvcndhcmRpbmdOZXR3b3JrSGVhZGVyc19OQU1FfSkKIFRBUkdFVF9MSU5L
X0xJQlJBUklFUygke1dlYktpdDJfTElCUkFSWV9OQU1FfSAke1dlYktpdDJfTElCUkFSSUVTfSkK
IFNFVF9UQVJHRVRfUFJPUEVSVElFUygke1dlYktpdDJfTElCUkFSWV9OQU1FfSBQUk9QRVJUSUVT
IEZPTERFUiAiV2ViS2l0IikKIFNFVF9UQVJHRVRfUFJPUEVSVElFUygke1dlYktpdDJfTElCUkFS
WV9OQU1FfSBQUk9QRVJUSUVTIExJTktfSU5URVJGQUNFX0xJQlJBUklFUyAiIikKK1NFVF9UQVJH
RVRfUFJPUEVSVElFUygke1dlYktpdDJfTElCUkFSWV9OQU1FfSBQUk9QRVJUSUVTIFZFUlNJT04g
JHtQUk9KRUNUX1ZFUlNJT059IFNPVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0pCiAK
LUFERF9FWEVDVVRBQkxFKCR7V2ViUHJvY2Vzc19OQU1FfSAke1dlYlByb2Nlc3NfU09VUkNFU30p
Ci1UQVJHRVRfTElOS19MSUJSQVJJRVMoJHtXZWJQcm9jZXNzX05BTUV9ICR7V2ViUHJvY2Vzc19M
SUJSQVJJRVN9KQotU0VUX1RBUkdFVF9QUk9QRVJUSUVTKCR7V2ViUHJvY2Vzc19OQU1FfSBQUk9Q
RVJUSUVTIEZPTERFUiAiV2ViS2l0IikKK0FERF9FWEVDVVRBQkxFKCR7V2ViS2l0Ml9QUk9DRVNT
X05BTUV9ICR7V2ViUHJvY2Vzc19TT1VSQ0VTfSkKK1RBUkdFVF9MSU5LX0xJQlJBUklFUygke1dl
YktpdDJfUFJPQ0VTU19OQU1FfSAke1dlYlByb2Nlc3NfTElCUkFSSUVTfSkKK1NFVF9UQVJHRVRf
UFJPUEVSVElFUygke1dlYktpdDJfUFJPQ0VTU19OQU1FfSBQUk9QRVJUSUVTIEZPTERFUiAiV2Vi
S2l0IikKK1NFVF9UQVJHRVRfUFJPUEVSVElFUygke1dlYktpdDJfUFJPQ0VTU19OQU1FfSBQUk9Q
RVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAiJHtDTUFLRV9CSU5BUllfRElSfS9iaW4i
KQogCi1TRVRfVEFSR0VUX1BST1BFUlRJRVMoJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0gUFJPUEVS
VElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfSBTT1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJ
T05fTUFKT1J9KQogSUYgKFdlYktpdDJfTElOS19GTEFHUykKICAgICBBRERfVEFSR0VUX1BST1BF
UlRJRVMoJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0gTElOS19GTEFHUyAiJHtXZWJLaXQyX0xJTktf
RkxBR1N9IikKLSAgICBBRERfVEFSR0VUX1BST1BFUlRJRVMoJHtXZWJQcm9jZXNzX05BTUV9IExJ
TktfRkxBR1MgIiR7V2ViS2l0Ml9MSU5LX0ZMQUdTfSIpCisgICAgQUREX1RBUkdFVF9QUk9QRVJU
SUVTKCR7V2ViS2l0Ml9QUk9DRVNTX05BTUV9IExJTktfRkxBR1MgIiR7V2ViS2l0Ml9MSU5LX0ZM
QUdTfSIpCiBFTkRJRiAoKQogCiBJTlNUQUxMKFRBUkdFVFMgJHtXZWJLaXQyX0xJQlJBUllfTkFN
RX0gREVTVElOQVRJT04gIiR7TElCX0lOU1RBTExfRElSfSIpCitJTlNUQUxMKFRBUkdFVFMgJHtX
ZWJLaXQyX1BST0NFU1NfTkFNRX0gREVTVElOQVRJT04gImJpbiIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IDZiNzY4ZDM3MzM4YTJjOWFkMjlmMTRjNzkxZDM5MzM3YmE3YzBjYTcuLjMx
ZjVhNzJkNDFlM2NiNzllMjRmN2U0YTQ3ZGI0NmRkYzEyMjY5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCkBAIC0yNCw4ICsyNCwxMSBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMK
ICAgICBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKICAgICBTaGFyZWQvZWZsL1dlYkNv
cmVBcmd1bWVudENvZGVyc0VmbC5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3
LmNwcAorCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCiAgICAgVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCiAK
QEAgLTY3LDYgKzcwLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9lZmwiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9lZmwvIgogICAg
ICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC8iCiAgICAgIiR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvRG93bmxvYWRzL2VmbCIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9lZmwiCkBAIC0xMjIsMyArMTI2LDE3IEBAIEFERF9DVVNUT01fVEFSR0VUKGZvcndhcmRpbmct
aGVhZGVyU291cAogICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9
L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsICR7V0VCS0lUMl9ESVJ9ICR7
REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9pbmNsdWRlIHNvdXAKICkKIFNFVChGb3J3YXJk
aW5nTmV0d29ya0hlYWRlcnNfTkFNRSBmb3J3YXJkaW5nLWhlYWRlclNvdXApCisKK0NPTkZJR1VS
RV9GSUxFKGVmbC9ld2Via2l0Mi5wYy5pbgorICAgICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0
Mi9lZmwvZXdlYmtpdDIucGMgQE9OTFkpCitJTlNUQUxMKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJ
Un0vV2ViS2l0Mi9lZmwvZXdlYmtpdDIucGMKKyAgICBERVNUSU5BVElPTiBsaWIvcGtnY29uZmln
KQorCitTRVQgKEVXZWJLaXQyX0hFQURFUlMKKyAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9T
T1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIgorICAgICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaCIKKykKKwor
SU5TVEFMTChGSUxFUyAke0VXZWJLaXQyX0hFQURFUlN9CisgICAgREVTVElOQVRJT04gaW5jbHVk
ZS8ke1dlYktpdDJfTElCUkFSWV9OQU1FfS0ke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMjhlN2FlZDYyNTczZTIxMDZlMjI4ZmZi
YTIzZDkyMGI5ZTQ3Yjc2ZS4uNDAyYWY4ZmQ1M2NiMWZiN2FmMWIyM2Q1N2ZhMWYxMDAxZjhhMDU0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtNDEsNiArNDEsMTAgQEAK
ICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZVNvdXAuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChX
VEZfUExBVEZPUk1fRUZMKQorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlRWZsLmg+CisjZW5kaWYK
KwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJ
RDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBlNDdi
MDVmZjViMGQ3OTU4OWM3ZTEyMTMxNDlmM2MxYzg2MTk0YTkwLi5jZmY3MGY0OGI0NGJkOGNlNDQ5
YTBhMTk5OGY3OTE1MTA4N2FiYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC0zNjQsNCArMzY0LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdl
YkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0K
ICNpbmNsdWRlICJXS0FQSUNhc3RTb3VwLmgiCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoV1RGX1BM
QVRGT1JNX0VGTCkKKyNpbmNsdWRlICJXS0FQSUNhc3RFZmwuaCIKKyNlbmRpZgorCiAjZW5kaWYg
Ly8gV0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
cHJpdmF0ZS5oCmluZGV4IGQzMzFkOTk2Zjg3ODI1NjZiMDE0YTExYmE3ZTNiNTJlYTJiZTM0YWYu
LjcyODIxNjk2OTk5YWFjNzRmOTM4MzBkODFjMDE5ZjI3OTZmOTc1YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ByaXZhdGUuaApAQCAtMjEsMTQgKzIxLDIz
IEBACiAjaWZuZGVmIGV3a19wcml2YXRlX2gKICNkZWZpbmUgZXdrX3ByaXZhdGVfaAogCisjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEludFJlY3Q7CiBjbGFz
cyBJbnRTaXplOwogfQogCit0eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7
CisKK1dLQ29udGV4dFJlZiBld2tDb250ZXh0R2V0V0tDb250ZXh0KEV3a19Db250ZXh0Kik7CisK
IHZvaWQgZXdrX3ZpZXdfZGlzcGxheShFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCk7CiB2b2lkIGV3a192aWV3X2ltYWdlX2RhdGFfc2V0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB2b2lkKiBpbWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNp
emUpOwogCitFdmFzX09iamVjdCogZXdrVmlld0Jhc2VBZGQoRXZhcyogY2FudmFzLCBXS0NvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsKK1dlYktpdDo6V2ViUGFnZVByb3h5KiBld2tWaWV3R2V0
UGFnZShFdmFzX09iamVjdCogZXdrVmlldyk7CisKICNlbmRpZiAvLyBld2tfcHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggMjY5
YzA3MmQ2NGE5MDUzNDk0YTBkNjI5N2EyMDA2ODQxMjAzODk2OS4uYjU5NTVhMDZiMjgyOGUxZjdj
ZTFlZDMyMjE2ZjcyYmUwZTIyMjE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjUsNiArMjUsMTEgQEAKICNpbmNsdWRlICJOYXRpdmVX
ZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKICNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgIldLVVJMLmgi
CisjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzMsNiArMzgsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciBFV0tfVklFV19UWVBFX1NUUltdID0gIkVXSzJfVmlldyI7CiAKIHN0cnVjdCBfRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhIHsKICAgICBPd25QdHI8UGFnZUNsaWVudEltcGw+IHBhZ2VDbGllbnQ7Cisg
ICAgQ1N0cmluZyB1cmk7CiB9OwogCiAjZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdrVmll
dywgcmVzdWx0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtNDYxLDcg
KzQ2NywzMCBAQCBzdGF0aWMgaW5saW5lIEV2YXNfU21hcnQqIF9ld2tfdmlld19zbWFydF9jbGFz
c19uZXcodm9pZCkKICAgICByZXR1cm4gc21hcnQ7CiB9CiAKLUV2YXNfT2JqZWN0KiBld2tfdmll
d19hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmKQorc3RhdGljIGJvb2wgdXBkYXRlVVJJKEV2YXNfT2JqZWN0KiBld2tW
aWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOworCisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFnZUNsaWVudC0+
cGFnZSgpOworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybFJlZihBZG9wdFdLLCBXS1Bh
Z2VDb3B5QWN0aXZlVVJMKHRvQVBJKHBhZ2UpKSk7CisgICAgaWYgKCF1cmxSZWYpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIENTdHJpbmcgdXJpID0gdG9JbXBsKHVybFJlZi5nZXQoKSkt
PnN0cmluZygpLnV0ZjgoKTsKKyAgICBpZiAodXJpLmlzTnVsbCgpIHx8IHVyaSA9PSBwcml2LT51
cmkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHByaXYtPnVyaSA9IHVyaTsKKworICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInVyaSxjaGFuZ2VkIiwg
KHZvaWQqKXByaXYtPnVyaS5kYXRhKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8qIHBy
aXZhdGUgKi8KK0V2YXNfT2JqZWN0KiBld2tWaWV3QmFzZUFkZChFdmFzKiBjYW52YXMsIFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7CiAgICAg
RXZhc19PYmplY3QqIGV3a1ZpZXcgPSBldmFzX29iamVjdF9zbWFydF9hZGQoY2FudmFzLCBfZXdr
X3ZpZXdfc21hcnRfY2xhc3NfbmV3KCkpOwogICAgIGlmICghZXdrVmlldykKQEAgLTQ4NCwxMiAr
NTEzLDQ0IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYKICAgICByZXR1cm4gZXdrVmlldzsKIH0K
IAotV0tQYWdlUmVmIGV3a192aWV3X3BhZ2VfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3KQorV2Vi
UGFnZVByb3h5KiBld2tWaWV3R2V0UGFnZShFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1
cm4gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpOworfQorCisvKiBwdWJsaWMgKi8KK0V2YXNfT2Jq
ZWN0KiBld2tfdmlld19hZGRfd2l0aF9jb250ZXh0KEV2YXMqIGNhbnZhcywgRXdrX0NvbnRleHQq
IGNvbnRleHQpCit7CisgICAgcmV0dXJuIGV3a1ZpZXdCYXNlQWRkKGNhbnZhcywgZXdrQ29udGV4
dEdldFdLQ29udGV4dChjb250ZXh0KSwgMCk7Cit9CisKK0V2YXNfT2JqZWN0KiBld2tfdmlld19h
ZGQoRXZhcyogY2FudmFzKQoreworICAgIHJldHVybiBld2tfdmlld19hZGRfd2l0aF9jb250ZXh0
KGNhbnZhcywgZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQoKSk7Cit9CisKK0VpbmFfQm9vbCBld2tf
dmlld191cmlfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB1cmkpCit7Cisg
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gZXdrVmlld0dldFBhZ2UoZXdrVmlldyk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHVyaSkpOworICAgIFdL
UGFnZUxvYWRVUkwodG9BUEkocGFnZSksIHVybC5nZXQoKSk7CisgICAgdXBkYXRlVVJJKGV3a1Zp
ZXcpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2NvbnN0IGNoYXIqIGV3a192aWV3X3VyaV9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwogCi0gICAgcmV0dXJuIHRvQVBJKHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKSk7CisgICAgcmV0dXJuIHByaXYtPnVyaS5kYXRhKCk7CiB9CiAKIHZv
aWQgZXdrX3ZpZXdfZGlzcGxheShFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgSW50UmVjdCYg
cmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4
IGM4OTU2YmNhNzI3YjlhMzg5ZGEwMDViODliNDVlMWYyYzEzYzc4MjUuLmRjYzY0ZjIxYjhjM2Yy
ZTcwODg3ZjM3NjAyZjE3NmQ2ZTU1MTliYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuaApAQCAtMjAsOCArMjAsOCBAQAogI2lmbmRlZiBld2tfdmlld19o
CiAjZGVmaW5lIGV3a192aWV3X2gKIAorI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVk
ZSA8RXZhcy5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogZXh0ZXJuICJDIiB7CkBAIC0xMjAsMjEgKzEyMCw0MSBAQCBzdHJ1Y3QgX0V3a19WaWV3
X1NtYXJ0X0RhdGEgewogICogQ3JlYXRlcyBhIG5ldyBFRkwgV2ViS2l0IFZpZXcgb2JqZWN0Lgog
ICoKICAqIEBwYXJhbSBlIGNhbnZhcyBvYmplY3Qgd2hlcmUgdG8gY3JlYXRlIHRoZSB2aWV3IG9i
amVjdAotICogQHBhcmFtIGNvbnRleHQgV0tDb250ZXh0J3MgUmVmZXJlbmNlIHBvaW50ZXIKLSAq
IEBwYXJhbSBwYWdlX2dyb3VwIFdLUGFnZUdyb3VwJ3MgUmVmZXJlbmNlIHBvaW50ZXIKICAqCiAg
KiBAcmV0dXJuIHZpZXcgb2JqZWN0IG9uIHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCiAgKi8K
LUVBUEkgRXZhc19PYmplY3QqIGV3a192aWV3X2FkZChFdmFzKiBlLCBXS0NvbnRleHRSZWYgY29u
dGV4dCwgV0tQYWdlR3JvdXBSZWYgcGFnZV9ncm91cCk7CitFQVBJIEV2YXNfT2JqZWN0KiBld2tf
dmlld19hZGQoRXZhcyogZSk7CiAKIC8qKgotICogR2V0cyB0aGUgV0tQYWdlUmVmIG9mIHRoaXMg
dmlldy4KKyAqIENyZWF0ZXMgYSBuZXcgRUZMIFdlYktpdCBWaWV3IG9iamVjdC4KKyAqCisgKiBA
cGFyYW0gZSBjYW52YXMgb2JqZWN0IHdoZXJlIHRvIGNyZWF0ZSB0aGUgdmlldyBvYmplY3QKKyAq
IEBwYXJhbSBjb250ZXh0IEV3a19Db250ZXh0IG9iamVjdCB0byBkZWNsYXJlIHByb2Nlc3MgbW9k
ZWwKKyAqCisgKiBAcmV0dXJuIHZpZXcgb2JqZWN0IG9uIHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWls
dXJlCisgKi8KK0VBUEkgRXZhc19PYmplY3QqIGV3a192aWV3X2FkZF93aXRoX2NvbnRleHQoRXZh
cyogZSwgRXdrX0NvbnRleHQqIGNvbnRleHQpOworCisvKioKKyAqIFJlcXVlc3RzIGxvYWRpbmcg
b2YgdGhlIGdpdmVuIFVSSSBzdHJpbmcuCisgKgorICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8g
bG9hZCBAYSB1cmkKKyAqIEBwYXJhbSB1cmkgdW5pZm9ybSByZXNvdXJjZSBpZGVudGlmaWVyIHRv
IGxvYWQKKyAqCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzZnVsIHJlcXVlc3Qg
b3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRWluYV9Cb29sIGV3a192aWV3
X3VyaV9zZXQoRXZhc19PYmplY3QqIG8sIGNvbnN0IGNoYXIqIHVyaSk7CisKKy8qKgorICogUmV0
dXJucyB0aGUgY3VycmVudCB1cmkgc3RyaW5nIG9mIHBhZ2UuCisgKgorICogVGhlIHJldHVybmVk
IHN0cmluZyBAYiBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLgogICoKLSAqIEBwYXJhbSBvIHRo
ZSB2aWV3IG9iamVjdCB0byBnZXQgdGhlIFdLUGFnZVJlZgorICogQHBhcmFtIG8gdmlldyBvYmpl
Y3QgdG8gZ2V0IGN1cnJlbnQgdXJpCiAgKgotICogQHJldHVybiB0aGUgV0tQYWdlUmVmIG9mIHRo
aXMgdmlldworICogQHJldHVybiBjdXJyZW50IHVyaSBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFp
bHVyZQogICovCi1FQVBJIFdLUGFnZVJlZiBld2tfdmlld19wYWdlX2dldChFdmFzX09iamVjdCog
byk7CitFQVBJIGNvbnN0IGNoYXIqIGV3a192aWV3X3VyaV9nZXQoY29uc3QgRXZhc19PYmplY3Qq
IG8pOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0
IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggOTBmZjAzYWI3OGFkZDkyZTY4NWE0M2M1ZTYyMzg2NTJl
MTNlM2FkYS4uY2MyZjI4ZGRiZTFhNjBkOTgzMTVlNGNkMDU2Zjk4YzQ3YzdhMmFiZSAxMDA2NDQK
LS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50eHQKQEAgLTExMCw2ICsxMTAs
NyBAQCBTRVQoSmF2YVNjcmlwdENvcmVfTElCUkFSWV9OQU1FIEphdmFTY3JpcHRDb3JlKQogU0VU
KFdlYkNvcmVfTElCUkFSWV9OQU1FIFdlYkNvcmUpCiBTRVQoV2ViS2l0X0xJQlJBUllfTkFNRSBX
ZWJLaXQpCiBTRVQoV2ViS2l0Ml9MSUJSQVJZX05BTUUgV2ViS2l0MikKK1NFVChXZWJLaXQyX1BS
T0NFU1NfTkFNRSBXZWJQcm9jZXNzKQogU0VUKFdlYkNvcmVUZXN0U3VwcG9ydF9MSUJSQVJZX05B
TUUgV2ViQ29yZVRlc3RTdXBwb3J0KQogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYzlmMmY1NzNmY2VmYzY2ODA5ZmEwNTli
NjYzNjY3ZGU3YTJhNGZlZS4uNGRhNGE0ZjFhM2YyYjA1ZDBhNGI2NzVkYzZiODI4MzI3YzQwMDAw
YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEyLTA1LTI5ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBbQmxhY2tCZXJyeV0gTG9hZGluZyBtZWRpYSBkYXRhIHdpdGggaHR0cCBhdXRoZW50aWNh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQy
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OiBBZGQgV2ViS2l0Ml9QUk9DRVNTX05BTUUgdmFyaWFibGUuCisKIDIwMTIt
MDUtMjUgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eu
b3JnPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144671</attachid>
            <date>2012-05-29 18:48:33 -0700</date>
            <delta_ts>2012-05-29 20:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84214-20120530094830.patch</filename>
            <type>text/plain</type>
            <size>9743</size>
            <attacher name="Jonathan Dong">jonathan.dong.webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNhZTM5YzFjNWQ4MjFm
ODcxMTVhZjQ2NjVkZTRiMTkyZTFkNWYzNy4uOTJjZTVmMjhjNWU4NjY0ZjY3YzM0YmE0NWQyNjUy
ODk1NTdlM2FkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA1LTI5ICBKb25h
dGhhbiBEb25nICA8am9uYXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAg
W0JsYWNrQmVycnldIExvYWRpbmcgbWVkaWEgZGF0YSB3aXRoIGh0dHAgYXV0aGVudGljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUklNIFBSOiAx
MTc2MTgKKyAgICAgICAgSW1wbGVtZW50ZWQgaHR0cCBhdXRoZW50aWNhdGlvbiBmZWF0dXJlIGZv
ciBtZWRpYSBieSBpbXBsZW1lbnRpbmcKKyAgICAgICAgdHdvIGludGVyZmFjZSBmdW5jdGlvbnMg
aW4gY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlOgorICAgICAgICBvbkF1dGhlbnRpY2F0aW9uTmVl
ZGVkKCk6IHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gTU1SCisgICAgICAgIGVuZ2lu
ZSByZXF1aXJlcyBodHRwIGF1dGhlbnRpY2F0aW9uLiBXZSBzZWFyY2ggdGhlIENyZWRlbnRpYWxT
dG9yYWdlCisgICAgICAgIHRvIHNlZSBpZiB3ZSBoYXZlIGFscmVhZHkgc3RvcmVkIGV4aXN0aW5n
IGNyZWRlbnRpYWwgaW5mb3JtYXRpb24sCisgICAgICAgIG9yIGNoYWxsZW5nZSB1c2VyIHRvIHBy
b3ZpZGUgaXQuCisgICAgICAgIE9uQXV0aGVudGljYXRpb25BY2NlcHRlZCgpOiB0aGlzIGZ1bmN0
aW9uIGlzIHRyaWdnZXJlZCB3aGVuIE1NUgorICAgICAgICBlbmdpbmUgYWNjZXB0cyB0aGUgY3Jl
ZGVudGlhbCBpbmZvcm1hdGlvbiwgYW5kIHdlIG5lZWQgdG8gc2F2ZQorICAgICAgICBpdCBpbiBD
cmVkZW50aWFsU3RvcmFnZSBmb3IgbGF0ZXIgdXNlLgorCisgICAgICAgIEludGVybmFsbHkgcmV2
aWV3ZWQgYnkgTWF4IEZlaWwgPG1mZWlsQHFueC5jb20+LgorCisgICAgICAgIE1hbnVhbCB0ZXN0
IGNhc2U6IGJsYWNrYmVycnkvdmlkZW8tbG9hZC13aXRoLWF1dGhlbnRpY2F0aW9uLmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRl
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVByb3RlY3Rpb25TcGFj
ZUZyb21NTVJBdXRoQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpvbkF1dGhlbnRpY2F0aW9uTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6b25BdXRoZW50aWNhdGlvbkFjY2VwdGVk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJp
dmF0ZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZSk6CisKIDIwMTIt
MDUtMjkgIFNjb3R0IEdyYWhhbSAgPHNjb3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZp
eCB3YXJuaW5nIGluIHByZXByb2Nlc3NpbmcgU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAK
aW5kZXggZGM5YTUzNGFmOWI5NDdmMTczMTk5NTIyNzU5YWRmMmIzYzg4NDU2Zi4uYWE3ODY3NjVh
ZWMzZTRhMTgwN2MyMDM2M2Y3MWI3YzhiMjkyMjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0Jl
cnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5
L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5j
bHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogCiAjaW5jbHVkZSAiQ29va2ll
TWFuYWdlci5oIgorI2luY2x1ZGUgIkNyZWRlbnRpYWwuaCIKKyNpbmNsdWRlICJDcmVkZW50aWFs
U3RvcmFnZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0zMCw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1Db250ZXh0U2tpYS5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgogI2luY2x1
ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJXZWJQ
YWdlQ2xpZW50LmgiCkBAIC02NTcsNiArNjYwLDUwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpvbkJ1ZmZlcmluZyhib29sIGZsYWcpCiB9CiAjZW5kaWYKIAorc3RhdGljIFByb3RlY3Rpb25T
cGFjZSBnZW5lcmF0ZVByb3RlY3Rpb25TcGFjZUZyb21NTVJBdXRoQ2hhbGxlbmdlKGNvbnN0IE1N
UkF1dGhDaGFsbGVuZ2UmIGF1dGhDaGFsbGVuZ2UpCit7CisgICAgS1VSTCB1cmwoUGFyc2VkVVJM
U3RyaW5nLCBTdHJpbmcoYXV0aENoYWxsZW5nZS51cmwoKS5jX3N0cigpKSk7CisgICAgQVNTRVJU
KHVybC5pc1ZhbGlkKCkpOworCisgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZSh1cmwuaG9zdCgp
LCB1cmwucG9ydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UHJv
dGVjdGlvblNwYWNlU2VydmVyVHlwZT4oYXV0aENoYWxsZW5nZS5zZXJ2ZXJUeXBlKCkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0aENoYWxsZW5nZS5yZWFsbSgpLmNfc3RyKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZT4oYXV0aENoYWxsZW5nZS5hdXRoU2NoZW1lKCkpKTsKK30KKworYm9v
bCBNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25OZWVkZWQoTU1SQXV0aENoYWxs
ZW5nZSYgYXV0aENoYWxsZW5nZSkKK3sKKyAgICBLVVJMIHVybChQYXJzZWRVUkxTdHJpbmcsIFN0
cmluZyhhdXRoQ2hhbGxlbmdlLnVybCgpLmNfc3RyKCkpKTsKKyAgICBpZiAoIXVybC5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0
aW9uU3BhY2UgPSBnZW5lcmF0ZVByb3RlY3Rpb25TcGFjZUZyb21NTVJBdXRoQ2hhbGxlbmdlKGF1
dGhDaGFsbGVuZ2UpOworICAgIENyZWRlbnRpYWwgY3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9y
YWdlOjpnZXQocHJvdGVjdGlvblNwYWNlKTsKKyAgICBib29sIGlzQ29uZmlybWVkID0gZmFsc2U7
CisgICAgaWYgKGNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChmcmFtZVZpZXco
KSAmJiBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpKQorICAgICAgICAgICAgaXNDb25maXJtZWQg
PSBmcmFtZVZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+YXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodXJsLCBwcm90ZWN0aW9uU3BhY2UsIGNyZWRlbnRpYWwpOworICAg
IH0gZWxzZQorICAgICAgICBpc0NvbmZpcm1lZCA9IHRydWU7CisKKyAgICBpZiAoaXNDb25maXJt
ZWQpCisgICAgICAgIGF1dGhDaGFsbGVuZ2Uuc2V0Q3JlZGVudGlhbChjcmVkZW50aWFsLnVzZXIo
KS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSwgc3Rh
dGljX2Nhc3Q8TU1SQXV0aENoYWxsZW5nZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlPihjcmVkZW50
aWFsLnBlcnNpc3RlbmNlKCkpKTsKKworICAgIHJldHVybiBpc0NvbmZpcm1lZDsKK30KKwordm9p
ZCBNZWRpYVBsYXllclByaXZhdGU6Om9uQXV0aGVudGljYXRpb25BY2NlcHRlZChjb25zdCBNTVJB
dXRoQ2hhbGxlbmdlJiBhdXRoQ2hhbGxlbmdlKSBjb25zdAoreworICAgIEtVUkwgdXJsKFBhcnNl
ZFVSTFN0cmluZywgU3RyaW5nKGF1dGhDaGFsbGVuZ2UudXJsKCkuY19zdHIoKSkpOworICAgIGlm
ICghdXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJvdGVjdGlvblNwYWNl
IHByb3RlY3Rpb25TcGFjZSA9IGdlbmVyYXRlUHJvdGVjdGlvblNwYWNlRnJvbU1NUkF1dGhDaGFs
bGVuZ2UoYXV0aENoYWxsZW5nZSk7CisgICAgQ3JlZGVudGlhbCBzYXZlZENyZWRlbnRpYWwgPSBD
cmVkZW50aWFsU3RvcmFnZTo6Z2V0KHByb3RlY3Rpb25TcGFjZSk7CisgICAgaWYgKHNhdmVkQ3Jl
ZGVudGlhbC5pc0VtcHR5KCkpCisgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpzZXQoQ3JlZGVu
dGlhbChhdXRoQ2hhbGxlbmdlLnVzZXJuYW1lKCkuY19zdHIoKSwgYXV0aENoYWxsZW5nZS5wYXNz
d29yZCgpLmNfc3RyKCksIHN0YXRpY19jYXN0PENyZWRlbnRpYWxQZXJzaXN0ZW5jZT4oYXV0aENo
YWxsZW5nZS5wZXJzaXN0ZW5jZSgpKSksIHByb3RlY3Rpb25TcGFjZSwgdXJsKTsKK30KKwogaW50
IE1lZGlhUGxheWVyUHJpdmF0ZTo6c2hvd0Vycm9yRGlhbG9nKE1NUlBsYXllcjo6RXJyb3IgdHlw
ZSkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgQmxhY2tCZXJyeTo6V2ViS2l0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXll
clByaXZhdGVCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAppbmRleCBiY2M1NDczYTZk
MzgyMTJkNjNjMjhkNzAwNTBiMjE3YTIzMWQ0OTk3Li4zNmMzNmY4Nzg1N2EyMzE4ZGJhZWM3Mjk3
YTkwOTIyZTZiYzhkODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0
ZUJsYWNrQmVycnkuaApAQCAtMTMwLDYgKzEzMCw4IEBAIHB1YmxpYzoKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIG9uQnVmZmVyaW5nKGJvb2wpOwog
I2VuZGlmCisgICAgdmlydHVhbCBib29sIG9uQXV0aGVudGljYXRpb25OZWVkZWQoQmxhY2tCZXJy
eTo6UGxhdGZvcm06Ok1NUkF1dGhDaGFsbGVuZ2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BdXRo
ZW50aWNhdGlvbkFjY2VwdGVkKGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpNTVJBdXRoQ2hh
bGxlbmdlJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIGlzRWxlbWVudFBhdXNlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDFmY2JhMjZiODhjNWY2YWUwMDg1MGZjMTUzODhi
NDI5MmY5OGIyODguLmU0MmQ5MmQxZmIwMGM3YzNmMDcxNTM5MTkxOGY3ZTJmMGVkMjBhYjEgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
Mi0wNS0yOSAgSm9uYXRoYW4gRG9uZyAgPGpvbmF0aGFuLmRvbmdAdG9yY2htb2JpbGUuY29tLmNu
PgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBMb2FkaW5nIG1lZGlhIGRhdGEgd2l0aCBodHRwIGF1
dGhlbnRpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDIxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGEgbWFudWFsIHRlc3QgY2FzZSB3aGljaCBuZWVkcyB1c2VyIHRvIHByb3ZpZGUg
YSBIVFRQIHNlcnZlcgorICAgICAgICB3aXRoIEhUVFAgYXV0aGVudGljYXRpb24gc3VwcG9ydCB3
aGVuIGxvYWRpbmcgdGhlIHNwZWNpZmllZCBtZWRpYQorICAgICAgICByZXNvdXJjZS4gVGhlIHRl
c3QgY2FzZSB3aWxsIHRlc3QgaWYgdGhlIG1lZGlhIHJlc291cmNlIGlzIHN1Y2Nlc3NmdWxseQor
ICAgICAgICBsb2FkZWQuCisKKyAgICAgICAgKiBNYW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVv
LWxvYWQtd2l0aC1hdXRoZW50aWNhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0yOSAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmNvbXBsZXRl
IHJlcGFpbnQgb24gdHdpdHRlci5jb20gd2hlbiByZXBseWluZyB0byBhIHR3ZWV0CmRpZmYgLS1n
aXQgYS9NYW51YWxUZXN0cy9ibGFja2JlcnJ5L3ZpZGVvLWxvYWQtd2l0aC1hdXRoZW50aWNhdGlv
bi5odG1sIGIvTWFudWFsVGVzdHMvYmxhY2tiZXJyeS92aWRlby1sb2FkLXdpdGgtYXV0aGVudGlj
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjI3M2Y0NzAzODI0MjgwMzJjNGRmZTJhMzkwN2UyNDAy
NTBlNjdhCi0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVzdHMvYmxhY2tiZXJyeS92aWRlby1s
b2FkLXdpdGgtYXV0aGVudGljYXRpb24uaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPnZpZGVvLWxvYWQtd2l0aC1hdXRoZW50
aWNhdGlvbjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXRlc3QuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPgorICBUaGlzIHRlc3QgY2FzZSBpcyBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MjE0Ij5odHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQyMTQ8L2E+PGJyPgorICBUaGlzIHRlc3QgY2FzZSBpcyBh
bWluZyBhdCB0ZXN0aW5nIHZpZGVvIGxvYWRpbmcgd2l0aCBodHRwIGF1dGhlbnRpY2F0aW9uIGNo
YWxsZW5nZS4gVG8gdXNlIHRoaXMgdGVzdCBjYXNlIHlvdSBzaG91bGQgc2V0dXAgeW91ciBhcGFj
aGUyIGh0dHAgc2VydmVyCisgIHdpdGggaHR0cCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IGZpcnN0
Ljxicj4KKyAgPHA+CisgICAgPGgzPldheXMgdG8gc2V0dXAgdGhlIGFwYWNoZTIgaHR0cCBzZXJ2
ZXIgd2l0aCBodHRwIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQ8L2gzPgorICAgIDxvbD4KKyAgICAg
IDxsaT5BZGQgIkFsbG93T3ZlcnJpZGUgQXV0aENvbmZpZyIgdG8gJmx0O0RpcmVjdG9yeSZndDsg
c2V0dGluZyBpbiB5b3VyIHNpdGUgY29uZmlndXJhdGlvbiBmaWxlOzwvbGk+CisgICAgICA8bGk+
Q3JlYXRlIHRoZSBwYXNzd29yZCBmaWxlIHVzaW5nIGNvbW1hbmQ6IDxjb2RlPmh0cGFzc3dkIC1j
ICZsdDtwYXNzb3JkX2ZpbGVuYW1lJmd0OyAmbHQ7dXNlcm5hbWUmZ3Q7PC9jb2RlPiwgYW5kIHB1
dCB0aGlzIGZpbGUgaW50byAmbHQ7U2VydmVyUm9vdCZndDs7PC9saT4KKyAgICAgIDxsaT5DcmVh
dGUgYSBkaXJlY3RvcnkgdW5kZXIgeW91ciBzZXJ2ZXIgJmx0O0RpcmVjdG9yeSZndDssIGFuZCBj
cmVhdGUgdGhlIGZpbGUgLmh0YWNjZXNzIGluIHRoaXMgZGlyZWN0b3J5OzwvbGk+CisgICAgICA8
bGk+Q29uZmlndXJlIHRoZSAuaHRhY2Nlc3MgZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVu
dDoKKyAgICAgICAgPHByZT5BdXRoVHlwZSAmbHQ7QmFzaWN8RGlnZXN0Jmd0OworQXV0aE5hbWUg
IlZpZGVvIEhUVFAgQXV0aGVudGljYXRpb24iCitBdXRoVXNlckZpbGUgJmx0Oy9wYXRoL3RvL3Ro
ZS9wYXNzd29yZC9maWxlJmd0OworUmVxdWlyZSB1c2VyICZsdDt1c2VybmFtZSZndDs8L3ByZT4K
KyAgICAgIDwvbGk+CisgICAgICA8bGk+UHV0IHlvdXIgdGVzdCB2aWRlbyBmaWxlIGludG8gdGhp
cyBkaXJlY3RvcnksIGFuZCByZXN0YXJ0IHlvdXIgYXBhY2hlMiBodHRwIHNlcnZlci48L2xpPgor
ICAgIDwvb2w+CisgICAgPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjb25maWd1cmluZyBhcGFj
aGUyIGh0dHAgYXV0aGVudGljYXRpb24sIHBsZWFzZSByZWZlciB0byBhcGFjaGUgMi4wIGRvY3Vt
ZW50OiA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMC9ob3d0by9hdXRo
Lmh0bWwiPkF1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uIGFuZCBBY2Nlc3MgQ29udHJvbDwv
YT4uPC9wPgorICA8L3A+CisgIDxwPgorICAgIDxoMz5XYXlzIHRvIHRlc3Q8L2gzPgorICAgIDxv
bD4KKyAgICAgIDxsaT5TZXR1cCB5b3VyIGFwYWNoZTIgaHR0cCBzZXJ2ZXIgYW5kIHByZXBhcmUg
dGhlIHZpZGVvIGZpbGUgYXMgbWVudGlvbmVkIGFib3ZlOzwvbGk+CisgICAgICA8bGk+RW50ZXIg
dGhlIGxpbmsgcG9pbnRpbmcgdG8gdGhlIHZpZGVvIGZpbGUgaW4gdGhlICJWaWRlbyBTb3VyY2Ui
IHRleHQgYXJlYSBiZWxvdzs8L2xpPgorICAgICAgPGxpPlRoZW4gcHJlc3MgbG9hZCBidXR0b24s
IGFuZCBmaWxsIHRoZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgcG9wIHVwIGRpYWxvZyB3aXRo
IHRoZSBjcmVkZW50aWFsIGluZm9ybWF0aW9uIGNyZWF0ZWQgYmVmb3JlLCB0aGVuIHdhaXQgZm9y
IHRoZSByZXN1bHQuPC9saT4KKyAgICA8L29sPgorICA8L3A+Cis8L3A+Cis8aHIgLz4KKzxkaXY+
CisgICAgVmlkZW8gU291cmNlOgorICAgIDxpbnB1dCB0eXBlPSJ1cmwiIGlkPSJ1cmwiIG5hbWU9
InZpZGVvU3JjIiBzaXplPSIxMDAiPjwvaW5wdXQ+PGJyPgorICAgIDxpbnB1dCB0eXBlPSJidXR0
b24iIHZhbHVlPSJMb2FkIiBvbmNsaWNrPSJsb2FkKCkiIC8+Cis8L2Rpdj4KKzx2aWRlbyBpZD0i
dmlkZW8iIGhpZGRlbj0iaGlkZGVuIj48L3ZpZGVvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgIGZ1bmN0aW9uIG9uTG9hZGVkKCkKKyAgICB7CisgICAgICAgIGxvZ1Jlc3Vs
dCh0cnVlLCAiVmlkZW8gZmlsZSBzdWNjZXNzZnVsbHkgbG9hZGVkLCB0ZXN0IGNhc2UgcGFzc2Vk
LiIpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25FcnJvcigp
CisgICAgeworICAgICAgICBmYWlsVGVzdCgiTG9hZCB2aWRlbyBmaWxlIGVycm9yLCB0ZXN0IGNh
c2UgZmFpbGVkLiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvYWQoKQorICAgIHsKKyAgICAg
ICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICB3YWl0Rm9yRXZlbnQoImxvYWRzdGFydCIp
OworICAgICAgICB3YWl0Rm9yRXZlbnQoImxvYWRlZGRhdGEiLCBvbkxvYWRlZCk7CisgICAgICAg
IHdhaXRGb3JFdmVudCgiZXJyb3IiLCBvbkVycm9yKTsKKworICAgICAgICBtZWRpYUVsZW1lbnQu
c3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVybCIpLnZhbHVlOworICAgICAgICBtZWRp
YUVsZW1lbnQubG9hZCgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>