<?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>37717</bug_id>
          
          <creation_ts>2010-04-16 11:39:21 -0700</creation_ts>
          <short_desc>Provide a way for clients to set session storage quota</short_desc>
          <delta_ts>2010-04-19 12:13:11 -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>PC</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>abarth</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dumi</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>jorlow</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>213326</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 11:39:21 -0700</bug_when>
    <thetext>Right now we have a way to set the quota for local storage but there&apos;s no way to specify a quota for session storage.  We should provide a way to set that quota for clients who care about limiting session storage size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213382</commentid>
    <comment_count>1</comment_count>
      <attachid>53554</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 13:08:47 -0700</bug_when>
    <thetext>Created attachment 53554
Patch to allow setting session storage quota

Patch.  I have suspicion that this may break chromium.  Hopefully the trybot will tell me exactly what to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213398</commentid>
    <comment_count>2</comment_count>
      <attachid>53554</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 13:35:24 -0700</bug_when>
    <thetext>Comment on attachment 53554
Patch to allow setting session storage quota

Why should clients be able to set session storage quota?  If pages want to use up all the memory, they can.  And that memory goes away when the page goes away.  Are you scared about session storage being filled up and the user navigating to other origins but not closing the tab/page/window (and thus it stays used)?  I guess I could see that being a valid use case for this....but either way, the &quot;why&quot; should probably be explained better in the change log.  (The meat of the patch looks good tho.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213422</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 14:11:32 -0700</bug_when>
    <thetext>Some WebKit devices may want to constrain session storage just like they do for local storage.  I&apos;ll mention that in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213443</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 15:00:09 -0700</bug_when>
    <thetext>The reason why we constrain it for LocalStorage is because the effects last beyond just the browsing session.  With SessionStorage, all you have to do to kill any negative effects is close the browser window.  This is in line with the rest of the web.  My point is that if you&apos;re worried about memory consumption, limiting just SessionStorage doesn&apos;t do much for you.

The only thing that isn&apos;t in line with the rest of the web is that navigating to another page doesn&apos;t result in everything being cleaned up.

My point is that I&apos;m not convinced this feature is actually useful and I&apos;d (at very least) like these nuances to be clear in the ChangeLog.  Actually....maybe these should be comments in settings.h or something...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213505</commentid>
    <comment_count>5</comment_count>
      <attachid>53583</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 17:07:36 -0700</bug_when>
    <thetext>Created attachment 53583
Revised patch with additional comments in Settings.h and ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213507</commentid>
    <comment_count>6</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 17:13:30 -0700</bug_when>
    <thetext>&gt; My point is that I&apos;m not convinced this feature is actually useful and I&apos;d (at
&gt; very least) like these nuances to be clear in the ChangeLog.  Actually....maybe
&gt; these should be comments in settings.h or something...

I&apos;ve added comments to Settings.h and ChangeLog.

Your comment is probably valid for the desktop environment.  However, a way to set a quota on session storage would be useful for devices that are more constrained in resources and therefore more concerned with memory consumption.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213508</commentid>
    <comment_count>7</comment_count>
      <attachid>53583</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 17:14:12 -0700</bug_when>
    <thetext>Comment on attachment 53583
Revised patch with additional comments in Settings.h and ChangeLog.

I don&apos;t think your comments adequately explain the situation.  This helps one element of memory consumption.  And the only reason why it&apos;s interesting is that the memory used stays until the Page dies.  If that weren&apos;t true, I&apos;d r- and mark the bug invalid.

LocalStorage and SessionStorage are often grouped together in peoples mind.  So I want to make sure that if someone&apos;s using LocalStorage quota they don&apos;t automatically think using SessionStorage quota is important to them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213513</commentid>
    <comment_count>8</comment_count>
      <attachid>53583</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 17:18:27 -0700</bug_when>
    <thetext>Comment on attachment 53583
Revised patch with additional comments in Settings.h and ChangeLog.

r=me

but i still think you can improve the comment a bit (per my other comment)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213518</commentid>
    <comment_count>9</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 17:21:43 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 53583 [details])
&gt; r=me
&gt; 
&gt; but i still think you can improve the comment a bit (per my other comment)

I&apos;ve changed comment in Settings.h to be:

        // Allow clients concerned with memory consumption to set a quota on session storage
        // since the memory used won&apos;t be released until the Page is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213520</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 17:24:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 53583 [details] [details])
&gt; &gt; r=me
&gt; &gt; 
&gt; &gt; but i still think you can improve the comment a bit (per my other comment)
&gt; 
&gt; I&apos;ve changed comment in Settings.h to be:
&gt; 
&gt;         // Allow clients concerned with memory consumption to set a quota on
&gt; session storage
&gt;         // since the memory used won&apos;t be released until the Page is destroyed.

Perfect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213530</commentid>
    <comment_count>11</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-16 17:36:24 -0700</bug_when>
    <thetext>Thanks Jeremy for the review.

I really want to see the chromium trybot try this patch and make sure I don&apos;t cause any breakages.  Because there&apos;s a bug with trybots now not looking at r+ patches, I&apos;ll mark it back to ? for now.  When the trybot finishes, hopefully someone will r+ the patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213533</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 17:49:28 -0700</bug_when>
    <thetext>If anything http://trac.webkit.org/browser/trunk/WebKit/chromium/src/StorageNamespaceProxy.cpp will need some massaging.  Probably by explicitly calling the parent constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213536</commentid>
    <comment_count>13</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-16 17:50:52 -0700</bug_when>
    <thetext>You can also build locally with |webkit-build --chromium| too, which might be easier than iterating with the bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213546</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-16 18:19:26 -0700</bug_when>
    <thetext>Attachment 53583 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1695208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213613</commentid>
    <comment_count>15</comment_count>
      <attachid>53596</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-17 10:22:03 -0700</bug_when>
    <thetext>Created attachment 53596
Patch with chromium fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213625</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-17 11:10:04 -0700</bug_when>
    <thetext>Attachment 53596 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1614594</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213627</commentid>
    <comment_count>17</comment_count>
      <attachid>53598</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-17 11:19:27 -0700</bug_when>
    <thetext>Created attachment 53598
Patch with chromium fix take 2 - forgot WebKitTools last time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213726</commentid>
    <comment_count>18</comment_count>
      <attachid>53598</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-18 01:41:05 -0700</bug_when>
    <thetext>Comment on attachment 53598
Patch with chromium fix take 2 - forgot WebKitTools last time.

This will still break Chromium since it consumes the API (even though it completely compiles now).  Could you please leave the default constructor and have it call the other one with noQuota?  In fact, you could even skip adding the constructor that allows a quota to be passed in since we don&apos;t currently have any plans to add it (and let someone working on Chromium change it if we change our minds).  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213906</commentid>
    <comment_count>19</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-18 21:50:44 -0700</bug_when>
    <thetext>&gt; Could you please leave the default constructor and
&gt; have it call the other one with noQuota?

I&apos;d like to get clarification on your suggestion.  Are you saying instead of changing:

PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page*)

to take in a new parameter, I should just make another version that also takes in a quota

PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page*, unsigned quota)

and have the original version&apos;s implementation just call the new version with noQuota?  Then the only chromium change that I need to make is passing noQuota to StorageNamespaceImpl::sessionStorageNamespace here:

WebStorageNamespace* WebStorageNamespace::createSessionStorageNamespace()
{
    return new WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::sessionStorageNamespace(noQuota));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213919</commentid>
    <comment_count>20</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-04-18 23:22:27 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; Could you please leave the default constructor and
&gt; &gt; have it call the other one with noQuota?
&gt; 
&gt; I&apos;d like to get clarification on your suggestion.  Are you saying instead of
&gt; changing:
&gt; 
&gt; PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page*)
&gt; 
&gt; to take in a new parameter, I should just make another version that also takes
&gt; in a quota
&gt; 
&gt; PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page*,
&gt; unsigned quota)
&gt; 
&gt; and have the original version&apos;s implementation just call the new version with
&gt; noQuota?  Then the only chromium change that I need to make is passing noQuota
&gt; to StorageNamespaceImpl::sessionStorageNamespace here:
&gt; 
&gt; WebStorageNamespace* WebStorageNamespace::createSessionStorageNamespace()
&gt; {
&gt;     return new
&gt; WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::sessionStorageNamespace(noQuota));
&gt; }

I think what you&apos;ve done in WebCore is great and shouldn&apos;t be changed.  I believe you can simply do this last part (passing in noQuota when creating the session storage StorageNamespaceImpl) and you&apos;re done.

If that doesn&apos;t make sense, it&apos;s probably because I&apos;m missing something obvious.  If so, I&apos;m happy to take a shot at the Chromium side of this and upload it.  Or you&apos;re free to land as is and we&apos;ll get our own build working again (since it really isn&apos;t your problem).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214025</commentid>
    <comment_count>21</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-19 07:46:20 -0700</bug_when>
    <thetext>&gt; I think what you&apos;ve done in WebCore is great and shouldn&apos;t be changed.  I
&gt; believe you can simply do this last part (passing in noQuota when creating the
&gt; session storage StorageNamespaceImpl) and you&apos;re done.

If I don&apos;t change what I have in WebCore, I&apos;ll also need to fix:
PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page* page)
to take in a quota argument since I&apos;ve changed the signature of StorageNamespace:;sessionStorageNamespace in WebCore.

So the entire change for chromium will look like:

--- WebKit/chromium/src/StorageNamespaceProxy.cpp	(revision 57799)
+++ WebKit/chromium/src/StorageNamespaceProxy.cpp	(working copy)
@@ -47,7 +47,7 @@ PassRefPtr&lt;StorageNamespace&gt; StorageName
     return adoptRef(new StorageNamespaceProxy(WebKit::webKitClient()-&gt;createLocalStorageNamespace(path, quota), LocalStorage));
 }
 
-PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page* page)
+PassRefPtr&lt;StorageNamespace&gt; StorageNamespace::sessionStorageNamespace(Page* page, unsigned quota)
 {
     WebKit::ChromeClientImpl* chromeClientImpl = static_cast&lt;WebKit::ChromeClientImpl*&gt;(page-&gt;chrome()-&gt;client());
     WebKit::WebViewClient* webViewClient = chromeClientImpl-&gt;webView()-&gt;client();
Index: WebKit/chromium/src/WebStorageNamespaceImpl.cpp
===================================================================
--- WebKit/chromium/src/WebStorageNamespaceImpl.cpp	(revision 57799)
+++ WebKit/chromium/src/WebStorageNamespaceImpl.cpp	(working copy)
@@ -47,7 +47,7 @@ WebStorageNamespace* WebStorageNamespace
 
 WebStorageNamespace* WebStorageNamespace::createSessionStorageNamespace()
 {
-    return new WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::sessionStorageNamespace());
+    return new WebStorageNamespaceImpl(WebCore::StorageNamespaceImpl::sessionStorageNamespace(noQuota));
 }
 
 WebStorageNamespaceImpl::WebStorageNamespaceImpl(PassRefPtr&lt;WebCore::StorageNamespace&gt; storageNamespace)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214132</commentid>
    <comment_count>22</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2010-04-19 11:40:56 -0700</bug_when>
    <thetext>Checked in r57822.  Checked in the minimum changes needed to fix chromium build as described in the last comment.

http://trac.webkit.org/changeset/57822</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214141</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-19 11:48:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57822 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214144</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 11:57:47 -0700</bug_when>
    <thetext>Looks like this broke Qt Minimal and will likely need some #ifdef QSETTINGS guards.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214146</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-04-19 12:01:12 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Looks like this broke Qt Minimal and will likely need some #ifdef QSETTINGS
&gt; guards.  :(

This could be that Qt on the build bot uses: -DENABLE_DOM_STORAGE=0
StorageMap::noQuota is inside a ENABLE(DOM_STORAGE) guard in StorageMap.h.

Eric, any way to tell if the &quot;try&quot; bot for Qt compiles with this flag on or off?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214154</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-19 12:13:11 -0700</bug_when>
    <thetext>The &quot;try&quot; bot (EWS) just uses &quot;build-webkit&quot;.  The code is here:
http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/ports.py#L152

Basically results in:
build-webkit --release --qt

We may want to remove the Qt MINIMAL builder from core, as personally I find trying to support an &quot;everything off&quot; configuration somewhat confusing. :)  I guess it&apos;s useful to know that our #ifdefs are clean or not.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53554</attachid>
            <date>2010-04-16 13:08:47 -0700</date>
            <delta_ts>2010-04-17 10:22:03 -0700</delta_ts>
            <desc>Patch to allow setting session storage quota</desc>
            <filename>37717-webcore.patch.txt</filename>
            <type>text/plain</type>
            <size>7322</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMDQtMTYgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzE3CisgICAgICAgIFByb3ZpZGUg
YSB3YXkgZm9yIGNsaWVudHMgdG8gc2V0IHNlc3Npb24gc3RvcmFnZSBxdW90YS4KKworICAgICAg
ICAqIFdlYkNvcmUuYmFzZS5leHA6IEV4cG9ydCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VR
dW90YSgpLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjpzZXNzaW9uU3RvcmFnZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OnNldFNlc3Npb25TdG9yYWdlUXVvdGEpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXNzaW9uU3RvcmFnZVF1b3RhKToKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAqIHN0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJ
bXBsLmg6CisKIDIwMTAtMDQtMTYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHJl
dmlzaW9uIDU3NzMzKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCSh3b3JraW5nIGNvcHkp
CkBAIC02NzEsNiArNjcxLDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZv
bnRGYQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRXZWJTZWN1cml0eUVuYWJsZWRFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjJzZXRMb2NhbFN0b3JhZ2VFbmFibGVkRWIKIF9fWk43V2ViQ29y
ZThTZXR0aW5nczIyc2V0U2Fuc1NlcmlmRm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5nRQor
X19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTZXNzaW9uU3RvcmFnZVF1b3RhRWoKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczIyc2V0U2hvd3NVUkxzSW5Ub29sVGlwc0ViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyM3NldERlZmF1bHRGaXhlZEZvbnRTaXplRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczIz
c2V0RWRpdGFibGVMaW5rQmVoYXZpb3JFTlNfMjBFZGl0YWJsZUxpbmtCZWhhdmlvckUKSW5kZXg6
IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHJldmlzaW9uIDU3NzMzKQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MDQsNyArNzA0LDcgQEAgdm9pZCBQYWdlOjpzZXREZWJ1Z2dlcihKU0M6OkRlYnVn
Z2VyKiBkZQogU3RvcmFnZU5hbWVzcGFjZSogUGFnZTo6c2Vzc2lvblN0b3JhZ2UoYm9vbCBvcHRp
b25hbENyZWF0ZSkKIHsKICAgICBpZiAoIW1fc2Vzc2lvblN0b3JhZ2UgJiYgb3B0aW9uYWxDcmVh
dGUpCi0gICAgICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSBTdG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZSh0aGlzKTsKKyAgICAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IFN0b3Jh
Z2VOYW1lc3BhY2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHRoaXMsIG1fc2V0dGluZ3MtPnNl
c3Npb25TdG9yYWdlUXVvdGEoKSk7CiAKICAgICByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZS5nZXQo
KTsKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gNTc3MzMpCisrKyBXZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
SGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgi
CisjaW5jbHVkZSAiU3RvcmFnZU1hcC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KIAogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKQEAgLTY0LDYgKzY1LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgLCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX21heGltdW1EZWNv
ZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwgbV9sb2Nh
bFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1
IHNwZWMuCisgICAgLCBtX3Nlc3Npb25TdG9yYWdlUXVvdGEoU3RvcmFnZU1hcDo6bm9RdW90YSkK
ICAgICAsIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWUobnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSkKICAgICAsIG1fem9vbU1vZGUoWm9vbVBhZ2UpCiAgICAgLCBtX2lzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKGZhbHNlKQpAQCAtMjc3LDYgKzI3OSwxMSBAQCB2b2lkIFNldHRpbmdzOjpz
ZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpCiAgICAgbV9sb2NhbFN0b3JhZ2VRdW90YSA9IGxvY2Fs
U3RvcmFnZVF1b3RhOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3Rh
KHVuc2lnbmVkIHNlc3Npb25TdG9yYWdlUXVvdGEpCit7CisgICAgbV9zZXNzaW9uU3RvcmFnZVF1
b3RhID0gc2Vzc2lvblN0b3JhZ2VRdW90YTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CiAgICAgaWYg
KG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA9PSBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQpJbmRl
eDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgJKHJldmlzaW9uIDU3NzMzKQorKysgV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCk7CiAgICAgICAgIHVuc2ln
bmVkIGxvY2FsU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFN0b3JhZ2VRdW90
YTsgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2ln
bmVkKTsKKyAgICAgICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsgfQogCiAgICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOyB9CkBAIC0zMTUsNiAr
MzE4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9kZWZhdWx0Rml4ZWRG
b250U2l6ZTsKICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAg
ICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CisgICAgICAgIHVuc2lnbmVkIG1fc2Vz
c2lvblN0b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGlt
ZTsKICAgICAgICAgWm9vbU1vZGUgbV96b29tTW9kZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkIDogMTsKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZS5jcHAJKHJldmlzaW9uIDU3NzMzKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBAIFBhc3NSZWZQdHI8U3RvcmFn
ZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUKIH0KIAogLy8gVGhlIHBhZ2UgYXJndW1lbnQgaXMgb25s
eSB1c2VkIGJ5IHRoZSBDaHJvbWl1bSBwb3J0LgotUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNl
PiBTdG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlKikKK1Bhc3NS
ZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoUGFnZSosIHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBTdG9yYWdlTmFt
ZXNwYWNlSW1wbDo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICByZXR1cm4gU3RvcmFn
ZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHF1b3RhKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCShy
ZXZpc2lvbiA1NzczMykKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7CiBjbGFzcyBT
dG9yYWdlTmFtZXNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZU5hbWVzcGFjZT4gewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3Rv
cmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZShQYWdlKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2UoUGFnZSosIHVuc2lnbmVkIHF1b3RhKTsKIAogICAgIHZpcnR1YWwg
flN0b3JhZ2VOYW1lc3BhY2UoKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RvcmFnZUFy
ZWE+IHN0b3JhZ2VBcmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KSA9IDA7CkluZGV4OiBX
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJldmlzaW9uIDU3NzMzKQor
KysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTgsOSArNTgsOSBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VO
YW1lCiAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZU5hbWVz
cGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkKK1Bh
c3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlKHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU3RvcmFnZU5hbWVzcGFjZUltcGwoU2Vzc2lvblN0b3JhZ2UsIFN0cmluZygpLCBTdG9yYWdl
TWFwOjpub1F1b3RhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlTmFtZXNwYWNl
SW1wbChTZXNzaW9uU3RvcmFnZSwgU3RyaW5nKCksIHF1b3RhKSk7CiB9CiAKIFN0b3JhZ2VOYW1l
c3BhY2VJbXBsOjpTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwg
Y29uc3QgU3RyaW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlSW1wbC5oCShyZXZpc2lvbiA1NzczMykKKysrIFdlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1
YmxpYyBTdG9yYWdlTmFtZXNwYWNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJp
bmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Rv
cmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5z
aWduZWQgcXVvdGEpOwogCiAgICAgICAgIHZpcnR1YWwgflN0b3JhZ2VOYW1lc3BhY2VJbXBsKCk7
CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOwo=
</data>
<flag name="review"
          id="37314"
          type_id="1"
          status="-"
          setter="jorlow"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53583</attachid>
            <date>2010-04-16 17:07:36 -0700</date>
            <delta_ts>2010-04-17 10:22:03 -0700</delta_ts>
            <desc>Revised patch with additional comments in Settings.h and ChangeLog.</desc>
            <filename>37717.patch.txt</filename>
            <type>text/plain</type>
            <size>7546</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzczMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDQtMTYgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzE3CisgICAgICAgIEFsbG93IGNs
aWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9u
IHNlc3Npb24gc3RvcmFnZS4KKyAgICAgICAgVGhlIGRlZmF1bHQgaXMgbm9RdW90YSwgd2hpY2gg
bWF0Y2hlcyB0aGUgY3VycmVudCBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5l
eHA6IEV4cG9ydCBTZXR0aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSgpLgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXNzaW9uU3RvcmFnZSk6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFNlc3Npb25TdG9y
YWdlUXVvdGEpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpzZXNzaW9uU3RvcmFnZVF1b3RhKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZTo6c2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNl
KToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmg6CisKIDIwMTAtMDQt
MTYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDU3NzMzKQorKysg
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC02NzEsNiArNjcxLDcg
QEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRTdGFuZGFyZEZvbnRGYQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjFzZXRXZWJTZWN1cml0eUVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdz
MjJzZXRMb2NhbFN0b3JhZ2VFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fu
c1NlcmlmRm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5nRQorX19aTjdXZWJDb3JlOFNldHRp
bmdzMjJzZXRTZXNzaW9uU3RvcmFnZVF1b3RhRWoKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0
U2hvd3NVUkxzSW5Ub29sVGlwc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyM3NldERlZmF1bHRG
aXhlZEZvbnRTaXplRWkKIF9fWk43V2ViQ29yZThTZXR0aW5nczIzc2V0RWRpdGFibGVMaW5rQmVo
YXZpb3JFTlNfMjBFZGl0YWJsZUxpbmtCZWhhdmlvckUKSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDU3NzMz
KQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDQsNyArNzA0
LDcgQEAgdm9pZCBQYWdlOjpzZXREZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKiBkZQogU3RvcmFnZU5h
bWVzcGFjZSogUGFnZTo6c2Vzc2lvblN0b3JhZ2UoYm9vbCBvcHRpb25hbENyZWF0ZSkKIHsKICAg
ICBpZiAoIW1fc2Vzc2lvblN0b3JhZ2UgJiYgb3B0aW9uYWxDcmVhdGUpCi0gICAgICAgIG1fc2Vz
c2lvblN0b3JhZ2UgPSBTdG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh0
aGlzKTsKKyAgICAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3BhY2U6OnNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlKHRoaXMsIG1fc2V0dGluZ3MtPnNlc3Npb25TdG9yYWdlUXVvdGEo
KSk7CiAKICAgICByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZS5nZXQoKTsKIH0KSW5kZXg6IFdlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAkocmV2aXNpb24gNTc3MzMpCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiU3RvcmFn
ZU1hcC5oIgogI2luY2x1ZGUgPGxpbWl0cz4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTY0
LDYgKzY1LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1
bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplKG51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICog
MTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCisgICAgLCBtX3Nl
c3Npb25TdG9yYWdlUXVvdGEoU3RvcmFnZU1hcDo6bm9RdW90YSkKICAgICAsIG1fcGx1Z2luQWxs
b3dlZFJ1blRpbWUobnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkKICAgICAsIG1fem9v
bU1vZGUoWm9vbVBhZ2UpCiAgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZhbHNl
KQpAQCAtMjc3LDYgKzI3OSwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VRdW90
YSh1bnNpCiAgICAgbV9sb2NhbFN0b3JhZ2VRdW90YSA9IGxvY2FsU3RvcmFnZVF1b3RhOwogfQog
Cit2b2lkIFNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkIHNlc3Npb25T
dG9yYWdlUXVvdGEpCit7CisgICAgbV9zZXNzaW9uU3RvcmFnZVF1b3RhID0gc2Vzc2lvblN0b3Jh
Z2VRdW90YTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiB7CiAgICAgaWYgKG1fcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCA9PSBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQpJbmRleDogV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9u
IDU3NzMzKQorKysgV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEz
OSw2ICsxMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2V0TG9j
YWxTdG9yYWdlUXVvdGEodW5zaWduZWQpOwogICAgICAgICB1bnNpZ25lZCBsb2NhbFN0b3JhZ2VR
dW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGE7IH0KKyAgICAgICAgCisg
ICAgICAgIC8vIEFsbG93IGNsaWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9u
IHRvIHNldCBhIHF1b3RhIG9uIHNlc3Npb24gc3RvcmFnZS4KKyAgICAgICAgLy8gRGVmYXVsdCBp
cyBub1F1b3RhLgorICAgICAgICB2b2lkIHNldFNlc3Npb25TdG9yYWdlUXVvdGEodW5zaWduZWQp
OworICAgICAgICB1bnNpZ25lZCBzZXNzaW9uU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4g
bV9zZXNzaW9uU3RvcmFnZVF1b3RhOyB9CiAKICAgICAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7IH0KQEAgLTMxNSw2ICszMjAs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX2RlZmF1bHRGaXhlZEZvbnRT
aXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKICAgICAgICAg
dW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90YTsKKyAgICAgICAgdW5zaWduZWQgbV9zZXNzaW9u
U3RvcmFnZVF1b3RhOwogICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOwog
ICAgICAgICBab29tTW9kZSBtX3pvb21Nb2RlOwogICAgICAgICBib29sIG1faXNTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQgOiAxOwpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmNw
cAkocmV2aXNpb24gNTc3MzMpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDkgQEAgUGFzc1JlZlB0cjxTdG9yYWdlTmFt
ZXNwYWNlPiBTdG9yYWdlTmFtZQogfQogCiAvLyBUaGUgcGFnZSBhcmd1bWVudCBpcyBvbmx5IHVz
ZWQgYnkgdGhlIENocm9taXVtIHBvcnQuCi1QYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0
b3JhZ2VOYW1lc3BhY2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFBhZ2UqKQorUGFzc1JlZlB0
cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZShQYWdlKiwgdW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0dXJuIFN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpOworICAgIHJldHVybiBTdG9yYWdlTmFt
ZXNwYWNlSW1wbDo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHJldmlz
aW9uIDU3NzMzKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBTdG9yYWdlQXJlYTsKIGNsYXNzIFN0b3Jh
Z2VOYW1lc3BhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlTmFtZXNwYWNlPiB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gbG9jYWxTdG9yYWdl
TmFtZXNwYWNlKGNvbnN0IFN0cmluZyYgcGF0aCwgdW5zaWduZWQgcXVvdGEpOwotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFBh
Z2UqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBzZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZShQYWdlKiwgdW5zaWduZWQgcXVvdGEpOwogCiAgICAgdmlydHVhbCB+U3Rv
cmFnZU5hbWVzcGFjZSgpIHsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4g
c3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pID0gMDsKSW5kZXg6IFdlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkocmV2aXNpb24gNTc3MzMpCisrKyBX
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01OCw5ICs1OCw5IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWUK
ICAgICByZXR1cm4gaXQtPnNlY29uZDsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNl
PiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKQorUGFzc1Jl
ZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2UodW5zaWduZWQgcXVvdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
dG9yYWdlTmFtZXNwYWNlSW1wbChTZXNzaW9uU3RvcmFnZSwgU3RyaW5nKCksIFN0b3JhZ2VNYXA6
Om5vUXVvdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0b3JhZ2VOYW1lc3BhY2VJbXBs
KFNlc3Npb25TdG9yYWdlLCBTdHJpbmcoKSwgcXVvdGEpKTsKIH0KIAogU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBjb25z
dCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VOYW1lc3BhY2VJbXBsLmgJKHJldmlzaW9uIDU3NzMzKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VJbXBsIDogcHVibGlj
IFN0b3JhZ2VOYW1lc3BhY2UgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RvcmFnZU5hbWVzcGFjZT4gbG9jYWxTdG9yYWdlTmFtZXNwYWNlKGNvbnN0IFN0cmluZyYg
cGF0aCwgdW5zaWduZWQgcXVvdGEpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdl
TmFtZXNwYWNlPiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpOworICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25l
ZCBxdW90YSk7CiAKICAgICAgICAgdmlydHVhbCB+U3RvcmFnZU5hbWVzcGFjZUltcGwoKTsKICAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYShQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53596</attachid>
            <date>2010-04-17 10:22:03 -0700</date>
            <delta_ts>2010-04-17 11:19:27 -0700</delta_ts>
            <desc>Patch with chromium fix</desc>
            <filename>37717.patch.txt</filename>
            <type>text/plain</type>
            <size>12077</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDQtMTcgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzE3CisgICAgICAgIEFsbG93IGNs
aWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9u
IHNlc3Npb24gc3RvcmFnZQorICAgICAgICBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUg
cmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgorICAgICAgICBUaGUgZGVmYXVs
dCBpcyBub1F1b3RhLCB3aGljaCBtYXRjaGVzIHRoZSBjdXJyZW50IGJlaGF2aW9yLgorCisgICAg
ICAgICogV2ViQ29yZS5iYXNlLmV4cDogRXhwb3J0IFNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFn
ZVF1b3RhKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNlc3Npb25TdG9yYWdlUXVvdGEpOgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgICogc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuaDoKKwogMjAxMC0wNC0xNyAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5i
YXNlLmV4cAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdv
cmtpbmcgY29weSkKQEAgLTY3MSw2ICs2NzEsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNl
dFN0YW5kYXJkRm9udEZhCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFdlYlNlY3VyaXR5RW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3RvcmFnZUVuYWJsZWRFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTlNfMTJBdG9t
aWNTdHJpbmdFCitfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNlc3Npb25TdG9yYWdlUXVvdGFF
agogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VSTHNJblRvb2xUaXBzRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVFaQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVkaXRhYmxlTGlua0JlaGF2
aW9yRQpJbmRleDogV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9QYWdlLmNwcAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcwNCw3ICs3MDQsNyBAQCB2b2lkIFBhZ2U6OnNldERlYnVnZ2Vy
KEpTQzo6RGVidWdnZXIqIGRlCiBTdG9yYWdlTmFtZXNwYWNlKiBQYWdlOjpzZXNzaW9uU3RvcmFn
ZShib29sIG9wdGlvbmFsQ3JlYXRlKQogewogICAgIGlmICghbV9zZXNzaW9uU3RvcmFnZSAmJiBv
cHRpb25hbENyZWF0ZSkKLSAgICAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3Bh
Y2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHRoaXMpOworICAgICAgICBtX3Nlc3Npb25TdG9y
YWdlID0gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodGhpcywgbV9z
ZXR0aW5ncy0+c2Vzc2lvblN0b3JhZ2VRdW90YSgpKTsKIAogICAgIHJldHVybiBtX3Nlc3Npb25T
dG9yYWdlLmdldCgpOwogfQpJbmRleDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiA1Nzc4MykKKysrIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
YWdlQ2FjaGUuaCIKKyNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCiAjaW5jbHVkZSA8bGltaXRzPgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNjQsNiArNjUsNyBAQCBTZXR0aW5nczo6U2V0dGlu
Z3MoUGFnZSogcGFnZSkKICAgICAsIG1fZGVmYXVsdEZpeGVkRm9udFNpemUoMCkKICAgICAsIG1f
bWF4aW11bURlY29kZWRJbWFnZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAg
ICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBi
eSB0aGUgSFRNTDUgc3BlYy4KKyAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdlTWFw
Ojpub1F1b3RhKQogICAgICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1
bnNpZ25lZD46Om1heCgpKQogICAgICwgbV96b29tTW9kZShab29tUGFnZSkKICAgICAsIG1faXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZmFsc2UpCkBAIC0yNzcsNiArMjc5LDExIEBAIHZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2kKICAgICBtX2xvY2FsU3RvcmFnZVF1
b3RhID0gbG9jYWxTdG9yYWdlUXVvdGE7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFNlc3Npb25T
dG9yYWdlUXVvdGEodW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSkKK3sKKyAgICBtX3Nlc3Np
b25TdG9yYWdlUXVvdGEgPSBzZXNzaW9uU3RvcmFnZVF1b3RhOworfQorCiB2b2lkIFNldHRpbmdz
OjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
IHsKICAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbmFibGVkID09IHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCk7CiAg
ICAgICAgIHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VRdW90YTsgfQorICAgICAgICAKKyAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25j
ZXJuZWQgd2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBz
dG9yYWdlCisgICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNl
ZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCisgICAgICAgIC8vIERlZmF1bHQgaXMgbm9R
dW90YS4KKyAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKKyAg
ICAgICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvblN0b3JhZ2VRdW90YTsgfQogCiAgICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sKTsKICAgICAgICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOyB9CkBAIC0zMTUsNiArMzIxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9kZWZhdWx0Rml4ZWRGb250U2l6ZTsK
ICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2ln
bmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CisgICAgICAgIHVuc2lnbmVkIG1fc2Vzc2lvblN0b3Jh
Z2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKICAgICAg
ICAgWm9vbU1vZGUgbV96b29tTW9kZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHAJKHJl
dmlzaW9uIDU3NzgzKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFj
ZT4gU3RvcmFnZU5hbWUKIH0KIAogLy8gVGhlIHBhZ2UgYXJndW1lbnQgaXMgb25seSB1c2VkIGJ5
IHRoZSBDaHJvbWl1bSBwb3J0LgotUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdl
TmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlKikKK1Bhc3NSZWZQdHI8U3Rv
cmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
UGFnZSosIHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNlSW1w
bDo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHF1b3RhKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiA1
Nzc4MykKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7CiBjbGFzcyBTdG9yYWdlTmFt
ZXNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZU5hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVz
cGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKTsKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlKik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoUGFnZSosIHVuc2lnbmVkIHF1b3RhKTsKIAogICAgIHZpcnR1YWwgflN0b3JhZ2VO
YW1lc3BhY2UoKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KSA9IDA7CkluZGV4OiBXZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJldmlzaW9uIDU3NzgzKQorKysgV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
OSArNTgsOSBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiAgICAg
cmV0dXJuIGl0LT5zZWNvbmQ7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkKK1Bhc3NSZWZQdHI8
U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFn
ZU5hbWVzcGFjZUltcGwoU2Vzc2lvblN0b3JhZ2UsIFN0cmluZygpLCBTdG9yYWdlTWFwOjpub1F1
b3RhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTZXNz
aW9uU3RvcmFnZSwgU3RyaW5nKCksIHF1b3RhKSk7CiB9CiAKIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oCShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1YmxpYyBTdG9y
YWdlTmFtZXNwYWNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBhdGgs
IHVuc2lnbmVkIHF1b3RhKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVz
cGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVv
dGEpOwogCiAgICAgICAgIHZpcnR1YWwgflN0b3JhZ2VOYW1lc3BhY2VJbXBsKCk7CiAgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4pOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1Nzc4MykKKysrIFdl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAor
MjAxMC0wNC0xNyAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MTcKKyAgICAgICAgQ2hhbmdlcyBuZWVkZWQgbm93IHRoYXQg
U3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkgdGFrZXMgaW4g
YSBxdW90YSBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAg
KiBzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VOYW1lc3BhY2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzcmMvV2Vi
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlTmFt
ZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisKIDIwMTAtMDQtMTcgIFZh
bmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICAvLyBJZiBwYXRoIGlzIGVtcHR5LCBkYXRhIHdpbGwgbm90IHBl
cnNpc3QuIFlvdSBzaG91bGQgY2FsbCBkZWxldGUgb24gdGhlIHJldHVybmVkCiAgICAgLy8gb2Jq
ZWN0IHdoZW4geW91J3JlIGZpbmlzaGVkLgogICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlN0b3Jh
Z2VOYW1lc3BhY2UqIGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBXZWJTdHJpbmcm
IGJhY2tpbmdEaXJlY3RvcnlQYXRoLCB1bnNpZ25lZCBxdW90YSk7Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CiAKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbm9RdW90YSA9IFVJTlRfTUFYOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCBwdWJs
aWM6CiAKIAogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2Ugb2JqZWN0
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCi0gICAgdmlydHVhbCBXZWJTdG9yYWdlTmFt
ZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpIHsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKHVuc2lnbmVkIHF1b3RhKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFtZXNwYWNlUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNw
cAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VOYW1lc3Bh
Y2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDExICs0NywxMSBAQCBQYXNzUmVmUHRy
PFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
dG9yYWdlTmFtZXNwYWNlUHJveHkoV2ViS2l0Ojp3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlTG9jYWxT
dG9yYWdlTmFtZXNwYWNlKHBhdGgsIHF1b3RhKSwgTG9jYWxTdG9yYWdlKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoUGFnZSogcGFnZSkKK1Bhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFn
ZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSogcGFnZSwgdW5zaWduZWQg
cXVvdGEpCiB7CiAgICAgV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKiBjaHJvbWVDbGllbnRJbXBs
ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKj4ocGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpKTsKICAgICBXZWJLaXQ6OldlYlZpZXdDbGllbnQqIHdlYlZpZXdDbGllbnQgPSBj
aHJvbWVDbGllbnRJbXBsLT53ZWJWaWV3KCktPmNsaWVudCgpOwotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU3RvcmFnZU5hbWVzcGFjZVByb3h5KHdlYlZpZXdDbGllbnQtPmNyZWF0ZVNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlKCksIFNlc3Npb25TdG9yYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdG9yYWdlTmFtZXNwYWNlUHJveHkod2ViVmlld0NsaWVudC0+Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UocXVvdGEpLCBTZXNzaW9uU3RvcmFnZSkpOwogfQogCiBTdG9yYWdlTmFt
ZXNwYWNlUHJveHk6OlN0b3JhZ2VOYW1lc3BhY2VQcm94eShXZWJLaXQ6OldlYlN0b3JhZ2VOYW1l
c3BhY2UqIHN0b3JhZ2VOYW1lc3BhY2UsIFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlKQpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJl
dmlzaW9uIDU3NzgzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDkgQEAgV2ViU3RvcmFnZU5hbWVz
cGFjZSogV2ViU3RvcmFnZU5hbWVzcGFjZQogICAgIHJldHVybiBuZXcgV2ViU3RvcmFnZU5hbWVz
cGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmxvY2FsU3RvcmFnZU5hbWVz
cGFjZShwYXRoLCBxdW90YSkpOwogfQogCi1XZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJTdG9yYWdl
TmFtZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpCitXZWJTdG9yYWdlTmFt
ZXNwYWNlKiBXZWJTdG9yYWdlTmFtZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSh1bnNpZ25lZCBxdW90YSkKIHsKLSAgICByZXR1cm4gbmV3IFdlYlN0b3JhZ2VOYW1lc3BhY2VJ
bXBsKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSgpKTsKKyAgICByZXR1cm4gbmV3IFdlYlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShxdW90YSkpOwogfQog
CiBXZWJTdG9yYWdlTmFtZXNwYWNlSW1wbDo6V2ViU3RvcmFnZU5hbWVzcGFjZUltcGwoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBzdG9yYWdlTmFtZXNwYWNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53598</attachid>
            <date>2010-04-17 11:19:27 -0700</date>
            <delta_ts>2010-04-18 01:41:04 -0700</delta_ts>
            <desc>Patch with chromium fix take 2 - forgot WebKitTools last time.</desc>
            <filename>37717.patch.txt</filename>
            <type>text/plain</type>
            <size>14427</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDQtMTcgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NzE3CisgICAgICAgIEFsbG93IGNs
aWVudHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9u
IHNlc3Npb24gc3RvcmFnZQorICAgICAgICBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUg
cmVsZWFzZWQgdW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgorICAgICAgICBUaGUgZGVmYXVs
dCBpcyBub1F1b3RhLCB3aGljaCBtYXRjaGVzIHRoZSBjdXJyZW50IGJlaGF2aW9yLgorCisgICAg
ICAgICogV2ViQ29yZS5iYXNlLmV4cDogRXhwb3J0IFNldHRpbmdzOjpzZXRTZXNzaW9uU3RvcmFn
ZVF1b3RhKCkuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0U2Vzc2lvblN0b3JhZ2VRdW90YSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5o
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNlc3Npb25TdG9yYWdlUXVvdGEpOgorICAg
ICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlTmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgICogc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlLmg6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c2Vz
c2lvblN0b3JhZ2VOYW1lc3BhY2UpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuaDoKKwogMjAxMC0wNC0xNyAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5i
YXNlLmV4cAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdv
cmtpbmcgY29weSkKQEAgLTY3MSw2ICs2NzEsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNl
dFN0YW5kYXJkRm9udEZhCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFdlYlNlY3VyaXR5RW5h
YmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldExvY2FsU3RvcmFnZUVuYWJsZWRFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTlNfMTJBdG9t
aWNTdHJpbmdFCitfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldFNlc3Npb25TdG9yYWdlUXVvdGFF
agogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTaG93c1VSTHNJblRvb2xUaXBzRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczIzc2V0RGVmYXVsdEZpeGVkRm9udFNpemVFaQogX19aTjdXZWJDb3Jl
OFNldHRpbmdzMjNzZXRFZGl0YWJsZUxpbmtCZWhhdmlvckVOU18yMEVkaXRhYmxlTGlua0JlaGF2
aW9yRQpJbmRleDogV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9QYWdlLmNwcAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcwNCw3ICs3MDQsNyBAQCB2b2lkIFBhZ2U6OnNldERlYnVnZ2Vy
KEpTQzo6RGVidWdnZXIqIGRlCiBTdG9yYWdlTmFtZXNwYWNlKiBQYWdlOjpzZXNzaW9uU3RvcmFn
ZShib29sIG9wdGlvbmFsQ3JlYXRlKQogewogICAgIGlmICghbV9zZXNzaW9uU3RvcmFnZSAmJiBv
cHRpb25hbENyZWF0ZSkKLSAgICAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IFN0b3JhZ2VOYW1lc3Bh
Y2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHRoaXMpOworICAgICAgICBtX3Nlc3Npb25TdG9y
YWdlID0gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodGhpcywgbV9z
ZXR0aW5ncy0+c2Vzc2lvblN0b3JhZ2VRdW90YSgpKTsKIAogICAgIHJldHVybiBtX3Nlc3Npb25T
dG9yYWdlLmdldCgpOwogfQpJbmRleDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiA1Nzc4MykKKysrIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
YWdlQ2FjaGUuaCIKKyNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCiAjaW5jbHVkZSA8bGltaXRzPgog
CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNjQsNiArNjUsNyBAQCBTZXR0aW5nczo6U2V0dGlu
Z3MoUGFnZSogcGFnZSkKICAgICAsIG1fZGVmYXVsdEZpeGVkRm9udFNpemUoMCkKICAgICAsIG1f
bWF4aW11bURlY29kZWRJbWFnZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAg
ICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBi
eSB0aGUgSFRNTDUgc3BlYy4KKyAgICAsIG1fc2Vzc2lvblN0b3JhZ2VRdW90YShTdG9yYWdlTWFw
Ojpub1F1b3RhKQogICAgICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1
bnNpZ25lZD46Om1heCgpKQogICAgICwgbV96b29tTW9kZShab29tUGFnZSkKICAgICAsIG1faXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZmFsc2UpCkBAIC0yNzcsNiArMjc5LDExIEBAIHZvaWQg
U2V0dGluZ3M6OnNldExvY2FsU3RvcmFnZVF1b3RhKHVuc2kKICAgICBtX2xvY2FsU3RvcmFnZVF1
b3RhID0gbG9jYWxTdG9yYWdlUXVvdGE7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFNlc3Npb25T
dG9yYWdlUXVvdGEodW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSkKK3sKKyAgICBtX3Nlc3Np
b25TdG9yYWdlUXVvdGEgPSBzZXNzaW9uU3RvcmFnZVF1b3RhOworfQorCiB2b2lkIFNldHRpbmdz
OjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
IHsKICAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbmFibGVkID09IHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSwxMiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VRdW90YSh1bnNpZ25lZCk7CiAg
ICAgICAgIHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9sb2Nh
bFN0b3JhZ2VRdW90YTsgfQorICAgICAgICAKKyAgICAgICAgLy8gQWxsb3cgY2xpZW50cyBjb25j
ZXJuZWQgd2l0aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBz
dG9yYWdlCisgICAgICAgIC8vIHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNl
ZCB1bnRpbCB0aGUgUGFnZSBpcyBkZXN0cm95ZWQuCisgICAgICAgIC8vIERlZmF1bHQgaXMgbm9R
dW90YS4KKyAgICAgICAgdm9pZCBzZXRTZXNzaW9uU3RvcmFnZVF1b3RhKHVuc2lnbmVkKTsKKyAg
ICAgICAgdW5zaWduZWQgc2Vzc2lvblN0b3JhZ2VRdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvblN0b3JhZ2VRdW90YTsgfQogCiAgICAgICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChib29sKTsKICAgICAgICAgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOyB9CkBAIC0zMTUsNiArMzIxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9kZWZhdWx0Rml4ZWRGb250U2l6ZTsK
ICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2ln
bmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CisgICAgICAgIHVuc2lnbmVkIG1fc2Vzc2lvblN0b3Jh
Z2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKICAgICAg
ICAgWm9vbU1vZGUgbV96b29tTW9kZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIDogMTsKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5jcHAJKHJl
dmlzaW9uIDU3NzgzKQorKysgV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw5ICs0Miw5IEBAIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFj
ZT4gU3RvcmFnZU5hbWUKIH0KIAogLy8gVGhlIHBhZ2UgYXJndW1lbnQgaXMgb25seSB1c2VkIGJ5
IHRoZSBDaHJvbWl1bSBwb3J0LgotUGFzc1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdl
TmFtZXNwYWNlOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlKikKK1Bhc3NSZWZQdHI8U3Rv
cmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
UGFnZSosIHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBTdG9yYWdlTmFtZXNwYWNlSW1w
bDo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICByZXR1cm4gU3RvcmFnZU5hbWVzcGFj
ZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHF1b3RhKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiA1
Nzc4MykKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7CiBjbGFzcyBTdG9yYWdlTmFt
ZXNwYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZU5hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVz
cGFjZShjb25zdCBTdHJpbmcmIHBhdGgsIHVuc2lnbmVkIHF1b3RhKTsKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQYWdlKik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoUGFnZSosIHVuc2lnbmVkIHF1b3RhKTsKIAogICAgIHZpcnR1YWwgflN0b3JhZ2VO
YW1lc3BhY2UoKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KSA9IDA7CkluZGV4OiBXZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJldmlzaW9uIDU3NzgzKQorKysgV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgs
OSArNTgsOSBAQCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiAgICAg
cmV0dXJuIGl0LT5zZWNvbmQ7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3Rv
cmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkKK1Bhc3NSZWZQdHI8
U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlKHVuc2lnbmVkIHF1b3RhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFn
ZU5hbWVzcGFjZUltcGwoU2Vzc2lvblN0b3JhZ2UsIFN0cmluZygpLCBTdG9yYWdlTWFwOjpub1F1
b3RhKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlTmFtZXNwYWNlSW1wbChTZXNz
aW9uU3RvcmFnZSwgU3RyaW5nKCksIHF1b3RhKSk7CiB9CiAKIFN0b3JhZ2VOYW1lc3BhY2VJbXBs
OjpTdG9yYWdlTmFtZXNwYWNlSW1wbChTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXRoLCB1bnNpZ25lZCBxdW90YSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5oCShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
TmFtZXNwYWNlSW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbCA6IHB1YmxpYyBTdG9y
YWdlTmFtZXNwYWNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBTdHJpbmcmIHBhdGgs
IHVuc2lnbmVkIHF1b3RhKTsKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZU5hbWVz
cGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UodW5zaWduZWQgcXVv
dGEpOwogCiAgICAgICAgIHZpcnR1YWwgflN0b3JhZ2VOYW1lc3BhY2VJbXBsKCk7CiAgICAgICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4pOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1Nzc4MykKKysrIFdl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAor
MjAxMC0wNC0xNyAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MTcKKyAgICAgICAgQ2hhbmdlcyBuZWVkZWQgbm93IHRoYXQg
U3RvcmFnZU5hbWVzcGFjZUltcGw6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCkgdGFrZXMgaW4g
YSBxdW90YSBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFj
ZS5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdDbGllbnQ6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAg
KiBzcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VOYW1lc3BhY2U6OnNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKiBzcmMvV2Vi
U3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlTmFt
ZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisKIDIwMTAtMDQtMTcgIFZh
bmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
U3RvcmFnZU5hbWVzcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU3RvcmFnZU5hbWVzcGFjZS5oCShyZXZpc2lvbiA1Nzc4MykKKysrIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU3RvcmFnZU5hbWVzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICAvLyBJZiBwYXRoIGlzIGVtcHR5LCBkYXRhIHdpbGwgbm90IHBl
cnNpc3QuIFlvdSBzaG91bGQgY2FsbCBkZWxldGUgb24gdGhlIHJldHVybmVkCiAgICAgLy8gb2Jq
ZWN0IHdoZW4geW91J3JlIGZpbmlzaGVkLgogICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlN0b3Jh
Z2VOYW1lc3BhY2UqIGNyZWF0ZUxvY2FsU3RvcmFnZU5hbWVzcGFjZShjb25zdCBXZWJTdHJpbmcm
IGJhY2tpbmdEaXJlY3RvcnlQYXRoLCB1bnNpZ25lZCBxdW90YSk7Ci0gICAgV0VCS0lUX0FQSSBz
dGF0aWMgV2ViU3RvcmFnZU5hbWVzcGFjZSogY3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Uo
KTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJTdG9yYWdlTmFtZXNwYWNlKiBjcmVhdGVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNpZ25lZCBxdW90YSk7CiAKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbm9RdW90YSA9IFVJTlRfTUFYOwogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCBwdWJs
aWM6CiAKIAogICAgIC8vIENyZWF0ZSBhIHNlc3Npb24gc3RvcmFnZSBuYW1lc3BhY2Ugb2JqZWN0
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuCi0gICAgdmlydHVhbCBXZWJTdG9yYWdlTmFt
ZXNwYWNlKiBjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpIHsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIFdlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNw
YWNlKHVuc2lnbmVkIHF1b3RhKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBNaXNjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlTmFtZXNwYWNlUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZU5hbWVzcGFjZVByb3h5LmNw
cAkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VOYW1lc3Bh
Y2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDExICs0NywxMSBAQCBQYXNzUmVmUHRy
PFN0b3JhZ2VOYW1lc3BhY2U+IFN0b3JhZ2VOYW1lCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
dG9yYWdlTmFtZXNwYWNlUHJveHkoV2ViS2l0Ojp3ZWJLaXRDbGllbnQoKS0+Y3JlYXRlTG9jYWxT
dG9yYWdlTmFtZXNwYWNlKHBhdGgsIHF1b3RhKSwgTG9jYWxTdG9yYWdlKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFnZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UoUGFnZSogcGFnZSkKK1Bhc3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gU3RvcmFn
ZU5hbWVzcGFjZTo6c2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSogcGFnZSwgdW5zaWduZWQg
cXVvdGEpCiB7CiAgICAgV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKiBjaHJvbWVDbGllbnRJbXBs
ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsKj4ocGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpKTsKICAgICBXZWJLaXQ6OldlYlZpZXdDbGllbnQqIHdlYlZpZXdDbGllbnQgPSBj
aHJvbWVDbGllbnRJbXBsLT53ZWJWaWV3KCktPmNsaWVudCgpOwotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU3RvcmFnZU5hbWVzcGFjZVByb3h5KHdlYlZpZXdDbGllbnQtPmNyZWF0ZVNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlKCksIFNlc3Npb25TdG9yYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBTdG9yYWdlTmFtZXNwYWNlUHJveHkod2ViVmlld0NsaWVudC0+Y3JlYXRlU2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2UocXVvdGEpLCBTZXNzaW9uU3RvcmFnZSkpOwogfQogCiBTdG9yYWdlTmFt
ZXNwYWNlUHJveHk6OlN0b3JhZ2VOYW1lc3BhY2VQcm94eShXZWJLaXQ6OldlYlN0b3JhZ2VOYW1l
c3BhY2UqIHN0b3JhZ2VOYW1lc3BhY2UsIFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlKQpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJl
dmlzaW9uIDU3NzgzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTdG9yYWdlTmFtZXNwYWNl
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDkgQEAgV2ViU3RvcmFnZU5hbWVz
cGFjZSogV2ViU3RvcmFnZU5hbWVzcGFjZQogICAgIHJldHVybiBuZXcgV2ViU3RvcmFnZU5hbWVz
cGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZUltcGw6OmxvY2FsU3RvcmFnZU5hbWVz
cGFjZShwYXRoLCBxdW90YSkpOwogfQogCi1XZWJTdG9yYWdlTmFtZXNwYWNlKiBXZWJTdG9yYWdl
TmFtZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpCitXZWJTdG9yYWdlTmFt
ZXNwYWNlKiBXZWJTdG9yYWdlTmFtZXNwYWNlOjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSh1bnNpZ25lZCBxdW90YSkKIHsKLSAgICByZXR1cm4gbmV3IFdlYlN0b3JhZ2VOYW1lc3BhY2VJ
bXBsKFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSgpKTsKKyAgICByZXR1cm4gbmV3IFdlYlN0b3JhZ2VOYW1lc3BhY2VJbXBsKFdlYkNvcmU6OlN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShxdW90YSkpOwogfQog
CiBXZWJTdG9yYWdlTmFtZXNwYWNlSW1wbDo6V2ViU3RvcmFnZU5hbWVzcGFjZUltcGwoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpTdG9yYWdlTmFtZXNwYWNlPiBzdG9yYWdlTmFtZXNwYWNlKQpJbmRleDog
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNTc3ODMpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNC0xNyAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc3MTcKKyAgICAgICAgVXBk
YXRlIFdlYlZpZXdIb3N0OjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSgpIHRvIHRha2Ug
aW4gYSBxdW90YS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoK
KwogMjAxMC0wNC0xNyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAJKHJldmlzaW9uIDU3NzgzKQorKysg
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjcsOSArMjY3LDkgQEAgV2ViV2lkZ2V0KiBXZWJWaWV3SG9zdDo6Y3Jl
YXRlUG9wdXBNZW51KAogICAgIHJldHVybiAwOwogfQogCi1XZWJTdG9yYWdlTmFtZXNwYWNlKiBX
ZWJWaWV3SG9zdDo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKQorV2ViU3RvcmFnZU5h
bWVzcGFjZSogV2ViVmlld0hvc3Q6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVuc2ln
bmVkIHF1b3RhKQogewotICAgIHJldHVybiBXZWJLaXQ6OldlYlN0b3JhZ2VOYW1lc3BhY2U6OmNy
ZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViU3Rv
cmFnZU5hbWVzcGFjZTo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UocXVvdGEpOwogfQog
CiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRBZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFdlYkNvbnNv
bGVNZXNzYWdlJiBtZXNzYWdlLCBjb25zdCBXZWJTdHJpbmcmIHNvdXJjZU5hbWUsIHVuc2lnbmVk
IHNvdXJjZUxpbmUpCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmgJKHJldmlzaW9uIDU3NzgzKQorKysgV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAkod29ya2luZyBjb3B5KQpAQCAtODUs
NyArODUsNyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpCiAgICAg
dmlydHVhbCBXZWJLaXQ6OldlYlZpZXcqIGNyZWF0ZVZpZXcoV2ViS2l0OjpXZWJGcmFtZSopOwog
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJXaWRnZXQqIGNyZWF0ZVBvcHVwTWVudShib29sIGFjdGl2
YXRhYmxlKTsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViV2lkZ2V0KiBjcmVhdGVQb3B1cE1lbnUo
Y29uc3QgV2ViS2l0OjpXZWJQb3B1cE1lbnVJbmZvJik7Ci0gICAgdmlydHVhbCBXZWJLaXQ6Oldl
YlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKCk7CisgICAg
dmlydHVhbCBXZWJLaXQ6OldlYlN0b3JhZ2VOYW1lc3BhY2UqIGNyZWF0ZVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKHVuc2lnbmVkIHF1b3RhKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkTWVzc2Fn
ZVRvQ29uc29sZShjb25zdCBXZWJLaXQ6OldlYkNvbnNvbGVNZXNzYWdlJiwgY29uc3QgV2ViS2l0
OjpXZWJTdHJpbmcmIHNvdXJjZU5hbWUsIHVuc2lnbmVkIHNvdXJjZUxpbmUpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRTdGFydExvYWRpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcExvYWRp
bmcoKTsK
</data>
<flag name="review"
          id="37365"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>