<?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>112457</bug_id>
          
          <creation_ts>2013-03-15 12:18:22 -0700</creation_ts>
          <short_desc>Don&apos;t compute background obscuration on every repaint</short_desc>
          <delta_ts>2013-03-19 17:20:33 -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>Layout and Rendering</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>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alokp</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856185</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-15 12:18:22 -0700</bug_when>
    <thetext>There are less layouts than paints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856188</commentid>
    <comment_count>1</comment_count>
      <attachid>193352</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-15 12:22:56 -0700</bug_when>
    <thetext>Created attachment 193352
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856211</commentid>
    <comment_count>2</comment_count>
      <attachid>193352</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-15 13:01:10 -0700</bug_when>
    <thetext>Comment on attachment 193352
patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        We can put more effort into this in layout time as there are less layouts than paints.

fewer layouts

&gt; Source/WebCore/rendering/RenderBox.h:596
&gt; +    virtual void determineIsBackgroundKnownToBeObscured();

Awkward name. Maybe updateBackgroundKnownToBeObscured() or computeBackgroundObscurity()

&gt; Source/WebCore/rendering/RenderObject.h:691
&gt; +    void setIsBackgroundKnownToBeObscured(bool b) { m_bitfields.setIsBackgroundKnownToBeObscured(b); }

Should be setBackgroundIsKnownToBeObscured

&gt; Source/WebCore/rendering/RenderObject.h:1114
&gt; +        ADD_BOOLEAN_BITFIELD(isBackgroundKnownToBeObscured, IsBackgroundKnownToBeObscured);

Member should be called backgroundIsKnownToBeObscured or just backgroundKnownToBeObscured</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856401</commentid>
    <comment_count>3</comment_count>
      <attachid>193352</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 16:44:50 -0700</bug_when>
    <thetext>Comment on attachment 193352
patch

Attachment 193352 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17118306

New failing tests:
fast/replaced/border-radius-clip-content-edge.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856467</commentid>
    <comment_count>4</comment_count>
      <attachid>193412</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-15 18:48:44 -0700</bug_when>
    <thetext>Created attachment 193412
patch 2

Re-check the visibility on repaint-only style change. Add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856484</commentid>
    <comment_count>5</comment_count>
      <attachid>193412</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 19:44:58 -0700</bug_when>
    <thetext>Comment on attachment 193412
patch 2

Attachment 193412 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17181352

New failing tests:
fast/replaced/border-radius-clip-content-edge.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857236</commentid>
    <comment_count>6</comment_count>
      <attachid>193412</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-18 10:05:23 -0700</bug_when>
    <thetext>Comment on attachment 193412
patch 2

This is actually somewhat problematic. BitmapImage::frameHasAlphaAtIndex needs a decoded frame to know if it is transparent but we don&apos;t want to decode during layout (as it may never get painted). This is made less clear-cut but the fact that frameHasAlphaAtIndex() does not actually care about frames as the current implementation just checks if the image is jpg or something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857795</commentid>
    <comment_count>7</comment_count>
      <attachid>193704</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-18 17:34:34 -0700</bug_when>
    <thetext>Created attachment 193704
Caching and invalidation of obscuration status</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857799</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 17:37:40 -0700</bug_when>
    <thetext>Attachment 193704 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/css/obscured-background-child-style-change-expected.html&apos;, u&apos;LayoutTests/fast/css/obscured-background-child-style-change.html&apos;, u&apos;LayoutTests/fast/repaint/obscured-background-no-repaint.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/RenderBlock.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBox.cpp&apos;, u&apos;Source/WebCore/rendering/RenderBox.h&apos;, u&apos;Source/WebCore/rendering/RenderImage.cpp&apos;, u&apos;Source/WebCore/rendering/RenderImage.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderReplaced.cpp&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderObject.h:697:  The parameter name &quot;b&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857838</commentid>
    <comment_count>9</comment_count>
      <attachid>193704</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-18 18:27:48 -0700</bug_when>
    <thetext>Comment on attachment 193704
Caching and invalidation of obscuration status

Attachment 193704 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16997997

New failing tests:
fast/replaced/border-radius-clip-content-edge.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857847</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-18 18:44:16 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; New failing tests:
&gt; fast/replaced/border-radius-clip-content-edge.html

I think this just needs baseline update. The background color leaks under the shape in pixel results on chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858889</commentid>
    <comment_count>11</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-03-19 17:20:33 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/146279</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193352</attachid>
            <date>2013-03-15 12:22:56 -0700</date>
            <delta_ts>2013-03-15 18:48:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>background-visibility-layout.patch</filename>
            <type>text/plain</type>
            <size>12723</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NTkzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAzLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRlcm1pbmUgYmFja2dyb3Vu
ZCB2aXNpYmlsaXR5IG9uIGxheW91dCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBjYW4gcHV0IG1vcmUgZWZmb3J0IGludG8gdGhpcyBpbiBs
YXlvdXQgdGltZSBhcyB0aGVyZSBhcmUgbGVzcyBsYXlvdXRzIHRoYW4gcGFpbnRzLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpkZXRlcm1pbmVJc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6
OmltYWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Ym94U2hhZG93
U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklt
YWdlOjpkZXRlcm1pbmVJc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbWFnZTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaDoKKyAgICAgICAgKFJlbmRlckltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c3R5bGVXaWxs
Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6Omhhc0JveERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6aXNCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQpOgorICAgICAg
ICAKKyAgICAgICAgICAgIEFkZCBhIGJpdCBhbmQgYWNjZXNzb3JzLgorCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OnNldEhhc0JveERlY29yYXRpb25zKToKKyAgICAgICAgCisgICAg
ICAgICAgICBSZW5hbWVkIGZvciBjb25zaXN0ZW5jeS4KKworICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0OjpzZXRJc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6UmVuZGVyT2JqZWN0
Qml0ZmllbGRzKToKKyAgICAgICAgKFJlbmRlck9iamVjdEJpdGZpZWxkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQp
OgorCiAyMDEzLTAzLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1pbm9yIGNsZWFudXAgaW4gd29ya2VyIGNvZGUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTQ1NzQ1KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4OCw2
ICsxMzg4LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKICAgICAvLyBJZiB3ZSBoYXZl
IGEgbGlnaHR3ZWlnaHQgY2xpcCwgdGhlcmUgY2FuIG5ldmVyIGJlIGFueSBvdmVyZmxvdyBmcm9t
IGNoaWxkcmVuLgogICAgIGlmIChoYXNDb250cm9sQ2xpcCgpICYmIG1fb3ZlcmZsb3cpCiAgICAg
ICAgIGNsZWFyTGF5b3V0T3ZlcmZsb3coKTsKKworICAgIGlmIChoYXNCYWNrZ3JvdW5kKCkpCisg
ICAgICAgIGRldGVybWluZUlzQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKCk7CiB9CiAKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAkocmV2aXNpb24gMTQ1Nzg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMzEsNyArMTEzMSw3IEBAIHZvaWQg
UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQoY29uc3QgUGEKICAgICAgICAgaWYgKGRvY3VtZW50
RWxlbWVudFJlbmRlcmVyICYmICFkb2N1bWVudEVsZW1lbnRSZW5kZXJlci0+aGFzQmFja2dyb3Vu
ZCgpICYmIGRvY3VtZW50RWxlbWVudFJlbmRlcmVyID09IHBhcmVudCgpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICBpZiAoYmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSkK
KyAgICBpZiAoaXNCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQoKSkKICAgICAgICAgcmV0dXJu
OwogICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIHN0eWxlKCktPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciksIHN0eWxlKCktPmJhY2tncm91bmRM
YXllcnMoKSwgcGFpbnRSZWN0LCBibGVlZEF2b2lkYW5jZSk7CiB9CkBAIC0xMTgyLDE2ICsxMTgy
LDE2IEBAIGJvb2wgUmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGEKICAgICByZXR1
cm4gYmFja2dyb3VuZFJlY3QuY29udGFpbnMobG9jYWxSZWN0KTsKIH0KIAotYm9vbCBSZW5kZXJC
b3g6OmJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCkgY29uc3QKK3ZvaWQgUmVuZGVyQm94
OjpkZXRlcm1pbmVJc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCgpCiB7Ci0gICAgQVNTRVJU
KCFpc1Jvb3QoKSk7CisgICAgQVNTRVJUKGhhc0JhY2tncm91bmQoKSk7CiAgICAgLy8gVGVzdCB0
byBzZWUgaWYgdGhlIGNoaWxkcmVuIHRyaXZpYWxseSBvYnNjdXJlIHRoZSBiYWNrZ3JvdW5kLgot
ICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgY2FuIGJlIGRvbmUgb25jZSBwZXIgbGF5b3V0IGFuZCBp
dCBjYW4gYmUgbXVjaCBtb3JlIGNvbXByZWhlbnNpdmUuCi0gICAgaWYgKCFoYXNCYWNrZ3JvdW5k
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBUYWJsZSBiYWNrZ3JvdW5kIHBhaW50
aW5nIGlzIHNwZWNpYWwuCi0gICAgaWYgKGlzVGFibGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgY2FuIGJlIG11Y2ggbW9yZSBjb21wcmVoZW5zaXZl
LgorICAgIHNldElzQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKGZhbHNlKTsKKworICAgIC8v
IFRhYmxlIGFuZCByb290IGJhY2tncm91bmQgcGFpbnRpbmcgaXMgc3BlY2lhbC4KKyAgICBpZiAo
aXNUYWJsZSgpIHx8IGlzUm9vdCgpKQorICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRSZWN0
IGJhY2tncm91bmRSZWN0ID0gYmFja2dyb3VuZFBhaW50ZWRFeHRlbnQoKTsKICAgICAvLyBJZiB3
ZSBkb24ndCBmaW5kIGEgY292ZXJpbmcgY2hpbGQgZmFzdCB0aGVyZSBwcm9iYWJseSBpc24ndCBv
bmUuCkBAIC0xMjIzLDEwICsxMjIzLDExIEBAIGJvb2wgUmVuZGVyQm94OjpiYWNrZ3JvdW5kSXNL
bm93blRvQmVPYnMKICAgICAgICAgICAgIGlmIChjaGlsZExheWVyLT5oYXNUcmFuc2Zvcm0oKSB8
fCBjaGlsZExheWVyLT5pc1RyYW5zcGFyZW50KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNoaWxkQm94LT5iYWNrZ3JvdW5kSXNLbm93blRvQmVP
cGFxdWVJblJlY3QoY2hpbGRMb2NhbEJhY2tncm91bmRSZWN0KSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBpZiAoY2hpbGRCb3gtPmJhY2tncm91bmRJc0tub3duVG9CZU9wYXF1
ZUluUmVjdChjaGlsZExvY2FsQmFja2dyb3VuZFJlY3QpKSB7CisgICAgICAgICAgICBzZXRJc0Jh
Y2tncm91bmRLbm93blRvQmVPYnNjdXJlZCh0cnVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgUmVuZGVyQm94Ojpi
YWNrZ3JvdW5kSGFzT3BhcXVlVG9wTGF5ZXIoKSBjb25zdApAQCAtMTM2OSw2ICsxMzcwLDkgQEAg
dm9pZCBSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZwogICAgIGlmICghcGFyZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChoYXNCYWNrZ3JvdW5kKCkpCisgICAgICAg
IGRldGVybWluZUlzQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKCk7CisKICAgICBpZiAoKHN0
eWxlKCktPmJvcmRlckltYWdlKCkuaW1hZ2UoKSAmJiBzdHlsZSgpLT5ib3JkZXJJbWFnZSgpLmlt
YWdlKCktPmRhdGEoKSA9PSBpbWFnZSkgfHwKICAgICAgICAgKHN0eWxlKCktPm1hc2tCb3hJbWFn
ZSgpLmltYWdlKCkgJiYgc3R5bGUoKS0+bWFza0JveEltYWdlKCkuaW1hZ2UoKS0+ZGF0YSgpID09
IGltYWdlKSkgewogICAgICAgICByZXBhaW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCShyZXZpc2lvbiAxNDU3ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5Myw3ICs1OTMsNyBAQCBwcm90ZWN0
ZWQ6CiAKICAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRQYWludGVkRXh0ZW50KCkgY29uc3Q7CiAg
ICAgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgbG9jYWxSZWN0KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYmFja2dyb3VuZElzS25vd25U
b0JlT2JzY3VyZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lSXNCYWNrZ3Jv
dW5kS25vd25Ub0JlT2JzY3VyZWQoKTsKICAgICB2b2lkIHBhaW50QmFja2dyb3VuZChjb25zdCBQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlID0g
QmFja2dyb3VuZEJsZWVkTm9uZSk7CiAgICAgCiAgICAgdm9pZCBwYWludEZpbGxMYXllcihjb25z
dCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0IEZpbGxMYXllciosIGNvbnN0IExheW91
dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBSZW5k
ZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCShyZXZpc2lvbiAxNDU3ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcg
QEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbQogCiAgICAgaWYgKGhh
c0JveERlY29yYXRpb25zKCkgfHwgaGFzTWFzaygpKQogICAgICAgICBSZW5kZXJSZXBsYWNlZDo6
aW1hZ2VDaGFuZ2VkKG5ld0ltYWdlLCByZWN0KTsKLSAgICAKKwogICAgIGlmICghbV9pbWFnZVJl
c291cmNlKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ3OSwzMiArNDc5LDMwIEBAIGJvb2wgUmVu
ZGVySW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGkKICAgICBpZiAoIVJlbmRlckJveE1vZGVs
T2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoYmxlZWRBdm9pZGFu
Y2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gIWJhY2tncm91bmRJc0tu
b3duVG9CZU9ic2N1cmVkKCk7CisgICAgcmV0dXJuICFpc0JhY2tncm91bmRLbm93blRvQmVPYnNj
dXJlZCgpOwogfQogCi1ib29sIFJlbmRlckltYWdlOjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNj
dXJlZCgpIGNvbnN0Cit2b2lkIFJlbmRlckltYWdlOjpkZXRlcm1pbmVJc0JhY2tncm91bmRLbm93
blRvQmVPYnNjdXJlZCgpCiB7CisgICAgc2V0SXNCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQo
ZmFsc2UpOwogICAgIGlmICghbV9pbWFnZVJlc291cmNlLT5oYXNJbWFnZSgpIHx8IG1faW1hZ2VS
ZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICAg
ICAgcmV0dXJuOwogICAgIGlmIChtX2ltYWdlUmVzb3VyY2UtPmNhY2hlZEltYWdlKCkgJiYgIW1f
aW1hZ2VSZXNvdXJjZS0+Y2FjaGVkSW1hZ2UoKS0+aXNMb2FkZWQoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm47CiAKICAgICBFRmlsbEJveCBiYWNrZ3JvdW5kQ2xpcCA9
IHN0eWxlKCktPmJhY2tncm91bmRDbGlwKCk7Ci0KICAgICAvLyBCYWNrZ3JvdW5kIHBhaW50cyB1
bmRlciBib3JkZXJzLgogICAgIGlmIChiYWNrZ3JvdW5kQ2xpcCA9PSBCb3JkZXJGaWxsQm94ICYm
IHN0eWxlKCktPmhhc0JvcmRlcigpICYmICFib3JkZXJPYnNjdXJlc0JhY2tncm91bmQoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgICAgIHJldHVybjsKICAgICAvLyBCYWNrZ3JvdW5k
IHNob3dzIGluIHBhZGRpbmcgYXJlYS4KICAgICBpZiAoKGJhY2tncm91bmRDbGlwID09IEJvcmRl
ckZpbGxCb3ggfHwgYmFja2dyb3VuZENsaXAgPT0gUGFkZGluZ0ZpbGxCb3gpICYmIHN0eWxlKCkt
Pmhhc1BhZGRpbmcoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBDaGVjayBmb3IgaW1hZ2Ugd2l0aCBhbHBoYS4KICAgICBJbWFnZSogaW1hZ2UgPSBt
X2ltYWdlUmVzb3VyY2UtPmltYWdlKCkuZ2V0KCk7Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3Bh
cXVlKCk7CisgICAgaWYgKCFpbWFnZSB8fCAhaW1hZ2UtPmN1cnJlbnRGcmFtZUtub3duVG9CZU9w
YXF1ZSgpKQorICAgICAgICByZXR1cm47CisgICAgc2V0SXNCYWNrZ3JvdW5kS25vd25Ub0JlT2Jz
Y3VyZWQodHJ1ZSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVySW1hZ2U6Om1pbmltdW1SZXBsYWNl
ZEhlaWdodCgpIGNvbnN0CkBAIC01NjIsNiArNTYwLDkgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5
b3V0KCkKICAgICBJbnRTaXplIGNvbnRhaW5lclNpemUoY29udGVudFdpZHRoKCksIGNvbnRlbnRI
ZWlnaHQoKSk7CiAgICAgaWYgKCFjb250YWluZXJTaXplLmlzRW1wdHkoKSkKICAgICAgICAgbV9p
bWFnZVJlc291cmNlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIoY29udGFpbmVyU2l6ZSk7
CisKKyAgICBpZiAoaGFzQmFja2dyb3VuZCgpKQorICAgICAgICBkZXRlcm1pbmVJc0JhY2tncm91
bmRLbm93blRvQmVPYnNjdXJlZCgpOwogfQogCiB2b2lkIFJlbmRlckltYWdlOjpjb21wdXRlSW50
cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIGRvdWJsZSYg
aW50cmluc2ljUmF0aW8sIGJvb2wmIGlzUGVyY2VudGFnZUludHJpbnNpY1NpemUpIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAkocmV2aXNpb24gMTQ1Nzg2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludFJl
cGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgYmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lSXNCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQoKSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBj
b25zdCBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAJKHJldmlzaW9uIDE0NTc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTExLDcgKzE5MTEsNyBAQCB2b2lk
IFJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlCiAgICAgICAgICAgICBjbGVhclBv
c2l0aW9uZWRTdGF0ZSgpOwogICAgICAgICB9CiAgICAgICAgIHNldEhvcml6b250YWxXcml0aW5n
TW9kZSh0cnVlKTsKLSAgICAgICAgc2V0UGFpbnRCYWNrZ3JvdW5kKGZhbHNlKTsKKyAgICAgICAg
c2V0SGFzQm94RGVjb3JhdGlvbnMoZmFsc2UpOwogICAgICAgICBzZXRIYXNPdmVyZmxvd0NsaXAo
ZmFsc2UpOwogICAgICAgICBzZXRIYXNUcmFuc2Zvcm0oZmFsc2UpOwogICAgICAgICBzZXRIYXNS
ZWZsZWN0aW9uKGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgJKHJldmlzaW9uIDE0NTc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTczLDcgKzU3Myw4IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5oYXNMYXllcigp
OyB9CiAgICAgCi0gICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
Yml0ZmllbGRzLnBhaW50QmFja2dyb3VuZCgpOyB9CisgICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9u
cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmhhc0JveERlY29yYXRpb25zKCk7IH0KKyAg
ICBib29sIGlzQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKCkgY29uc3QgeyByZXR1cm4gbV9i
aXRmaWVsZHMuaXNCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQoKTsgfQogICAgIGJvb2wgYm9y
ZGVySW1hZ2VJc0xvYWRlZEFuZENhbkJlUmVuZGVyZWQoKSBjb25zdDsKICAgICBib29sIG11c3RS
ZXBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5k
KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aGFzQmFja2dyb3VuZCgpOyB9CkBAIC02ODYsNyAr
Njg3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRGbG9hdGluZyhib29sIGIgPSB0cnVlKSB7
IG1fYml0ZmllbGRzLnNldEZsb2F0aW5nKGIpOyB9CiAgICAgdm9pZCBzZXRJbmxpbmUoYm9vbCBi
ID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc0lubGluZShiKTsgfQotICAgIHZvaWQgc2V0SGFz
Qm94RGVjb3JhdGlvbnMoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRQYWludEJhY2tn
cm91bmQoYik7IH0KKyAgICB2b2lkIHNldEhhc0JveERlY29yYXRpb25zKGJvb2wgYiA9IHRydWUp
IHsgbV9iaXRmaWVsZHMuc2V0SGFzQm94RGVjb3JhdGlvbnMoYik7IH0KKyAgICB2b2lkIHNldElz
QmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRJc0Jh
Y2tncm91bmRLbm93blRvQmVPYnNjdXJlZChiKTsgfQogICAgIHZvaWQgc2V0SXNUZXh0KCkgeyBt
X2JpdGZpZWxkcy5zZXRJc1RleHQodHJ1ZSk7IH0KICAgICB2b2lkIHNldElzQm94KCkgeyBtX2Jp
dGZpZWxkcy5zZXRJc0JveCh0cnVlKTsgfQogICAgIHZvaWQgc2V0UmVwbGFjZWQoYm9vbCBiID0g
dHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc1JlcGxhY2VkKGIpOyB9CkBAIC0xMDc1LDcgKzEwNzcs
OCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX25lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dM
YXlvdXQoZmFsc2UpCiAgICAgICAgICAgICAsIG1fcHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5
KGZhbHNlKQogICAgICAgICAgICAgLCBtX2Zsb2F0aW5nKGZhbHNlKQotICAgICAgICAgICAgLCBt
X3BhaW50QmFja2dyb3VuZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9oYXNCb3hEZWNvcmF0aW9u
cyhmYWxzZSkKKyAgICAgICAgICAgICwgbV9pc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZChm
YWxzZSkKICAgICAgICAgICAgICwgbV9pc0Fub255bW91cyghbm9kZSkKICAgICAgICAgICAgICwg
bV9pc1RleHQoZmFsc2UpCiAgICAgICAgICAgICAsIG1faXNCb3goZmFsc2UpCkBAIC0xMDk3LDcg
KzExMDAsNyBAQCBwcml2YXRlOgogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIC8vIDMwIGJpdHMgaGF2ZSBiZWVuIHVzZWQgaGVyZS4gVGhlcmUgYXJlIHR3byBiaXRzIGF2
YWlsYWJsZS4KKyAgICAgICAgLy8gMzEgYml0cyBoYXZlIGJlZW4gdXNlZCBoZXJlLiBUaGVyZSBp
cyBvbmUgYml0IGF2YWlsYWJsZS4KICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobmVlZHNM
YXlvdXQsIE5lZWRzTGF5b3V0KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobmVlZHNQ
b3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQsIE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KTsK
ICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobm9ybWFsQ2hpbGROZWVkc0xheW91dCwgTm9y
bWFsQ2hpbGROZWVkc0xheW91dCk7CkBAIC0xMTA2LDggKzExMDksOSBAQCBwcml2YXRlOgogICAg
ICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHksIFBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSk7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxE
KGZsb2F0aW5nLCBGbG9hdGluZyk7CiAKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQocGFp
bnRCYWNrZ3JvdW5kLCBQYWludEJhY2tncm91bmQpOyAvLyBpZiB0aGUgYm94IGhhcyBzb21ldGhp
bmcgdG8gcGFpbnQgaW4gdGhlCisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGhhc0JveERl
Y29yYXRpb25zLCBIYXNCb3hEZWNvcmF0aW9ucyk7IC8vIGlmIHRoZSBib3ggaGFzIHNvbWV0aGlu
ZyB0byBwYWludCBpbiB0aGUKICAgICAgICAgLy8gYmFja2dyb3VuZCBwYWludGluZyBwaGFzZSAo
YmFja2dyb3VuZCwgYm9yZGVyLCBldGMpCisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJRUxEKGlz
QmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkLCBJc0JhY2tncm91bmRLbm93blRvQmVPYnNjdXJl
ZCk7CiAKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNBbm9ueW1vdXMsIElzQW5vbnlt
b3VzKTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNUZXh0LCBJc1RleHQpOwpAQCAt
MTE2Miw3ICsxMTY2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE5vcm1hbENoaWxkTmVlZHNM
YXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQoYik7
IH0KICAgICB2b2lkIHNldFBvc0NoaWxkTmVlZHNMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRz
LnNldFBvc0NoaWxkTmVlZHNMYXlvdXQoYik7IH0KICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmll
ZE5vcm1hbEZsb3dMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldE5lZWRzU2ltcGxpZmll
ZE5vcm1hbEZsb3dMYXlvdXQoYik7IH0KLSAgICB2b2lkIHNldFBhaW50QmFja2dyb3VuZChib29s
IGIpIHsgbV9iaXRmaWVsZHMuc2V0UGFpbnRCYWNrZ3JvdW5kKGIpOyB9CiAgICAgdm9pZCBzZXRJ
c0RyYWdnaW5nKGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRJc0RyYWdnaW5nKGIpOyB9CiAgICAg
dm9pZCBzZXRFdmVySGFkTGF5b3V0KGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRFdmVySGFkTGF5
b3V0KGIpOyB9CiAK
</data>
<flag name="review"
          id="214861"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="214922"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193412</attachid>
            <date>2013-03-15 18:48:44 -0700</date>
            <delta_ts>2013-03-18 17:34:34 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>background-visibility-layout-3.patch</filename>
            <type>text/plain</type>
            <size>14878</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NTk3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRlcm1pbmUgYmFja2dyb3Vu
ZCB2aXNpYmlsaXR5IGF0IGxheW91dCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBjYW4gcHV0IG1vcmUgZWZmb3J0IGludG8gdGhpcyBhdCBs
YXlvdXQgdGltZSBhcyB0aGVyZSBhcmUgZmV3ZXIgbGF5b3V0cyB0aGFuIHBhaW50cy4KKworICAg
ICAgICBUZXN0OiBmYXN0L2Nzcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5n
ZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgCisgICAgICAgICAgICBSZS1jaGVjayB0aGUgcGFyZW50IG9ic2N1cmF0aW9uIHN0
YXR1cyBpZiB0aGVyZSBpcyByZXBhaW50LW9ubHkgc3R5bGUgY2hhbmdlLgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OnVwZGF0ZUJhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmltYWdlQ2hhbmdlZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6Omlt
YWdlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6dXBkYXRlQmFja2dy
b3VuZEtub3duVG9CZU9ic2N1cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjps
YXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAoUmVu
ZGVySW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
aGFzQm94RGVjb3JhdGlvbnMpOgorICAgICAgICAKKyAgICAgICAgICAgICAgICBSZW5hbWVkIGZv
ciBjb25zaXN0ZW5jeS4KKyAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YmFj
a2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQpOgorICAgICAgICAKKyAgICAgICAgICAgICAgICBB
ZGQgYSBiaXQgYW5kIGFjY2Vzc29ycy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpzZXRIYXNCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OnNldEJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjpSZW5kZXJPYmplY3RCaXRmaWVsZHMp
OgorICAgICAgICAoUmVuZGVyT2JqZWN0Qml0ZmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6c2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCk6CisKIDIwMTMt
MDMtMTUgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJn
ZSBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCBpbnRvIERvY3VtZW50TG9hZGVy
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lv
biAxNDU3NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzg4LDYgKzEzODgsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlv
dXQoKQogICAgIC8vIElmIHdlIGhhdmUgYSBsaWdodHdlaWdodCBjbGlwLCB0aGVyZSBjYW4gbmV2
ZXIgYmUgYW55IG92ZXJmbG93IGZyb20gY2hpbGRyZW4uCiAgICAgaWYgKGhhc0NvbnRyb2xDbGlw
KCkgJiYgbV9vdmVyZmxvdykKICAgICAgICAgY2xlYXJMYXlvdXRPdmVyZmxvdygpOworCisgICAg
aWYgKGhhc0JhY2tncm91bmQoKSkKKyAgICAgICAgdXBkYXRlQmFja2dyb3VuZEtub3duVG9CZU9i
c2N1cmVkKCk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTQ1Nzg2KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MSw2
ICsyNzEsMTAgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZgogICAg
ICAgICB9CiAgICAgfQogCisgICAgLy8gT3VyIG9wYXF1ZW5lc3MgbWlnaHQgaGF2ZSBjaGFuZ2Vk
IHdpdGhvdXQgdHJpZ2dlcmluZyBsYXlvdXQuIFRoaXMgb25seSB0YWtlcyBjYXJlIG9mIHRoZSBj
YXNlIHdoZXJlIHNvbWV0aGluZyBtaWdodCBub3QgYmUgb2JzY3VyZWQgYW55bW9yZS4KKyAgICBp
ZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCkg
JiYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlUmVwYWludCB8fCBkaWZmID09IFN0eWxlRGlmZmVy
ZW5jZVJlcGFpbnRMYXllcikpCisgICAgICAgIHBhcmVudEJveCgpLT51cGRhdGVCYWNrZ3JvdW5k
S25vd25Ub0JlT2JzY3VyZWQoKTsKKwogICAgIGJvb2wgaXNCb2R5UmVuZGVyZXIgPSBpc0JvZHko
KTsKICAgICBib29sIGlzUm9vdFJlbmRlcmVyID0gaXNSb290KCk7CiAKQEAgLTExODIsMTYgKzEx
ODYsMTggQEAgYm9vbCBSZW5kZXJCb3g6OmJhY2tncm91bmRJc0tub3duVG9CZU9wYQogICAgIHJl
dHVybiBiYWNrZ3JvdW5kUmVjdC5jb250YWlucyhsb2NhbFJlY3QpOwogfQogCi1ib29sIFJlbmRl
ckJveDo6YmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBjb25zdAordm9pZCBSZW5kZXJC
b3g6OnVwZGF0ZUJhY2tncm91bmRLbm93blRvQmVPYnNjdXJlZCgpCiB7Ci0gICAgQVNTRVJUKCFp
c1Jvb3QoKSk7CiAgICAgLy8gVGVzdCB0byBzZWUgaWYgdGhlIGNoaWxkcmVuIHRyaXZpYWxseSBv
YnNjdXJlIHRoZSBiYWNrZ3JvdW5kLgotICAgIC8vIEZJWE1FOiBUaGlzIHRlc3QgY2FuIGJlIGRv
bmUgb25jZSBwZXIgbGF5b3V0IGFuZCBpdCBjYW4gYmUgbXVjaCBtb3JlIGNvbXByZWhlbnNpdmUu
CisgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBjYW4gYmUgbXVjaCBtb3JlIGNvbXByZWhlbnNpdmUu
CisgICAgc2V0QmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoZmFsc2UpOwogICAgIGlmICgh
aGFzQmFja2dyb3VuZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gVGFibGUgYmFj
a2dyb3VuZCBwYWludGluZyBpcyBzcGVjaWFsLgotICAgIGlmIChpc1RhYmxlKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChuZWVkc0xheW91dCgpKQor
ICAgICAgICByZXR1cm47CisgICAgLy8gVGFibGUgYW5kIHJvb3QgYmFja2dyb3VuZCBwYWludGlu
ZyBpcyBzcGVjaWFsLgorICAgIGlmIChpc1RhYmxlKCkgfHwgaXNSb290KCkpCisgICAgICAgIHJl
dHVybjsKIAogICAgIExheW91dFJlY3QgYmFja2dyb3VuZFJlY3QgPSBiYWNrZ3JvdW5kUGFpbnRl
ZEV4dGVudCgpOwogICAgIC8vIElmIHdlIGRvbid0IGZpbmQgYSBjb3ZlcmluZyBjaGlsZCBmYXN0
IHRoZXJlIHByb2JhYmx5IGlzbid0IG9uZS4KQEAgLTEyMjMsMTAgKzEyMjksMTEgQEAgYm9vbCBS
ZW5kZXJCb3g6OmJhY2tncm91bmRJc0tub3duVG9CZU9icwogICAgICAgICAgICAgaWYgKGNoaWxk
TGF5ZXItPmhhc1RyYW5zZm9ybSgpIHx8IGNoaWxkTGF5ZXItPmlzVHJhbnNwYXJlbnQoKSkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoY2hpbGRCb3gt
PmJhY2tncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjaGlsZExvY2FsQmFja2dyb3VuZFJl
Y3QpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChjaGlsZEJveC0+YmFj
a2dyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNoaWxkTG9jYWxCYWNrZ3JvdW5kUmVjdCkp
IHsKKyAgICAgICAgICAgIHNldEJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKHRydWUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBSZW5kZXJCb3g6OmJhY2tncm91bmRIYXNPcGFxdWVUb3BMYXllcigpIGNvbnN0
CkBAIC0xMzY5LDYgKzEzNzYsOSBAQCB2b2lkIFJlbmRlckJveDo6aW1hZ2VDaGFuZ2VkKFdyYXBw
ZWRJbWFnCiAgICAgaWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGhh
c0JhY2tncm91bmQoKSkKKyAgICAgICAgdXBkYXRlQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVk
KCk7CisKICAgICBpZiAoKHN0eWxlKCktPmJvcmRlckltYWdlKCkuaW1hZ2UoKSAmJiBzdHlsZSgp
LT5ib3JkZXJJbWFnZSgpLmltYWdlKCktPmRhdGEoKSA9PSBpbWFnZSkgfHwKICAgICAgICAgKHN0
eWxlKCktPm1hc2tCb3hJbWFnZSgpLmltYWdlKCkgJiYgc3R5bGUoKS0+bWFza0JveEltYWdlKCku
aW1hZ2UoKS0+ZGF0YSgpID09IGltYWdlKSkgewogICAgICAgICByZXBhaW50KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxNDU3ODYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5Myw3
ICs1OTMsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRQYWludGVk
RXh0ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wg
YmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKCk7CiAgICAgdm9pZCBwYWludEJhY2tn
cm91bmQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVl
ZEF2b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUpOwogICAgIAogICAgIHZvaWQgcGFpbnRG
aWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBjb25zdCBGaWxsTGF5ZXIq
LCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBDb21wb3NpdGVP
cGVyYXRvciwgUmVuZGVyT2JqZWN0KiBiYWNrZ3JvdW5kT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkocmV2aXNpb24gMTQ1Nzg2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTY1LDcgKzE2NSw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW0K
IAogICAgIGlmIChoYXNCb3hEZWNvcmF0aW9ucygpIHx8IGhhc01hc2soKSkKICAgICAgICAgUmVu
ZGVyUmVwbGFjZWQ6OmltYWdlQ2hhbmdlZChuZXdJbWFnZSwgcmVjdCk7Ci0gICAgCisKICAgICBp
ZiAoIW1faW1hZ2VSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00ODIsMjkgKzQ4Miwy
NyBAQCBib29sIFJlbmRlckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpCiAgICAgcmV0dXJu
ICFiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpOwogfQogCi1ib29sIFJlbmRlckltYWdl
OjpiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpIGNvbnN0Cit2b2lkIFJlbmRlckltYWdl
Ojp1cGRhdGVCYWNrZ3JvdW5kS25vd25Ub0JlT2JzY3VyZWQoKQogeworICAgIHNldEJhY2tncm91
bmRJc0tub3duVG9CZU9ic2N1cmVkKGZhbHNlKTsKICAgICBpZiAoIW1faW1hZ2VSZXNvdXJjZS0+
aGFzSW1hZ2UoKSB8fCBtX2ltYWdlUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCisgICAgICAgIHJldHVybjsKICAgICBpZiAobV9pbWFnZVJlc291cmNl
LT5jYWNoZWRJbWFnZSgpICYmICFtX2ltYWdlUmVzb3VyY2UtPmNhY2hlZEltYWdlKCktPmlzTG9h
ZGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgRUZp
bGxCb3ggYmFja2dyb3VuZENsaXAgPSBzdHlsZSgpLT5iYWNrZ3JvdW5kQ2xpcCgpOwotCiAgICAg
Ly8gQmFja2dyb3VuZCBwYWludHMgdW5kZXIgYm9yZGVycy4KICAgICBpZiAoYmFja2dyb3VuZENs
aXAgPT0gQm9yZGVyRmlsbEJveCAmJiBzdHlsZSgpLT5oYXNCb3JkZXIoKSAmJiAhYm9yZGVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQorICAgICAgICByZXR1
cm47CiAgICAgLy8gQmFja2dyb3VuZCBzaG93cyBpbiBwYWRkaW5nIGFyZWEuCiAgICAgaWYgKChi
YWNrZ3JvdW5kQ2xpcCA9PSBCb3JkZXJGaWxsQm94IHx8IGJhY2tncm91bmRDbGlwID09IFBhZGRp
bmdGaWxsQm94KSAmJiBzdHlsZSgpLT5oYXNQYWRkaW5nKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ2hlY2sgZm9yIGltYWdlIHdpdGggYWxwaGEu
CiAgICAgSW1hZ2UqIGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgpLmdldCgpOwotICAg
IGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gaW1hZ2UtPmN1
cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1ZSgpOworICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5j
dXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHNldEJh
Y2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKHRydWUpOwogfQogCiBMYXlvdXRVbml0IFJlbmRl
ckltYWdlOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdApAQCAtNTYyLDYgKzU2MCw5IEBA
IHZvaWQgUmVuZGVySW1hZ2U6OmxheW91dCgpCiAgICAgSW50U2l6ZSBjb250YWluZXJTaXplKGNv
bnRlbnRXaWR0aCgpLCBjb250ZW50SGVpZ2h0KCkpOwogICAgIGlmICghY29udGFpbmVyU2l6ZS5p
c0VtcHR5KCkpCiAgICAgICAgIG1faW1hZ2VSZXNvdXJjZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJl
bmRlcmVyKGNvbnRhaW5lclNpemUpOworCisgICAgaWYgKGhhc0JhY2tncm91bmQoKSkKKyAgICAg
ICAgdXBkYXRlQmFja2dyb3VuZEtub3duVG9CZU9ic2N1cmVkKCk7CiB9CiAKIHZvaWQgUmVuZGVy
SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmlu
c2ljU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50cmlu
c2ljU2l6ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5o
CShyZXZpc2lvbiAxNDU3ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsK
IAotICAgIHZpcnR1YWwgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kS25vd25Ub0JlT2Jz
Y3VyZWQoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5pbXVtUmVwbGFj
ZWRIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDE0NTc0NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTExLDcgKzE5
MTEsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlCiAgICAgICAg
ICAgICBjbGVhclBvc2l0aW9uZWRTdGF0ZSgpOwogICAgICAgICB9CiAgICAgICAgIHNldEhvcml6
b250YWxXcml0aW5nTW9kZSh0cnVlKTsKLSAgICAgICAgc2V0UGFpbnRCYWNrZ3JvdW5kKGZhbHNl
KTsKKyAgICAgICAgc2V0SGFzQm94RGVjb3JhdGlvbnMoZmFsc2UpOwogICAgICAgICBzZXRIYXNP
dmVyZmxvd0NsaXAoZmFsc2UpOwogICAgICAgICBzZXRIYXNUcmFuc2Zvcm0oZmFsc2UpOwogICAg
ICAgICBzZXRIYXNSZWZsZWN0aW9uKGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE0NTc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTczLDcgKzU3Myw4IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaGFzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxk
cy5oYXNMYXllcigpOyB9CiAgICAgCi0gICAgYm9vbCBoYXNCb3hEZWNvcmF0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fYml0ZmllbGRzLnBhaW50QmFja2dyb3VuZCgpOyB9CisgICAgYm9vbCBoYXNC
b3hEZWNvcmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmhhc0JveERlY29yYXRp
b25zKCk7IH0KKyAgICBib29sIGJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9iaXRmaWVsZHMuYmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKTsgfQog
ICAgIGJvb2wgYm9yZGVySW1hZ2VJc0xvYWRlZEFuZENhbkJlUmVuZGVyZWQoKSBjb25zdDsKICAg
ICBib29sIG11c3RSZXBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aGFzQmFja2dyb3VuZCgpOyB9
CkBAIC02ODYsNyArNjg3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRGbG9hdGluZyhib29s
IGIgPSB0cnVlKSB7IG1fYml0ZmllbGRzLnNldEZsb2F0aW5nKGIpOyB9CiAgICAgdm9pZCBzZXRJ
bmxpbmUoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc0lubGluZShiKTsgfQotICAg
IHZvaWQgc2V0SGFzQm94RGVjb3JhdGlvbnMoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5z
ZXRQYWludEJhY2tncm91bmQoYik7IH0KKyAgICB2b2lkIHNldEhhc0JveERlY29yYXRpb25zKGJv
b2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SGFzQm94RGVjb3JhdGlvbnMoYik7IH0KKyAg
ICB2b2lkIHNldEJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKGJvb2wgYikgeyBtX2JpdGZp
ZWxkcy5zZXRCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChiKTsgfQogICAgIHZvaWQgc2V0
SXNUZXh0KCkgeyBtX2JpdGZpZWxkcy5zZXRJc1RleHQodHJ1ZSk7IH0KICAgICB2b2lkIHNldElz
Qm94KCkgeyBtX2JpdGZpZWxkcy5zZXRJc0JveCh0cnVlKTsgfQogICAgIHZvaWQgc2V0UmVwbGFj
ZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRJc1JlcGxhY2VkKGIpOyB9CkBAIC0x
MDc1LDcgKzEwNzcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX25lZWRzU2ltcGxpZmll
ZE5vcm1hbEZsb3dMYXlvdXQoZmFsc2UpCiAgICAgICAgICAgICAsIG1fcHJlZmVycmVkTG9naWNh
bFdpZHRoc0RpcnR5KGZhbHNlKQogICAgICAgICAgICAgLCBtX2Zsb2F0aW5nKGZhbHNlKQotICAg
ICAgICAgICAgLCBtX3BhaW50QmFja2dyb3VuZChmYWxzZSkKKyAgICAgICAgICAgICwgbV9oYXNC
b3hEZWNvcmF0aW9ucyhmYWxzZSkKKyAgICAgICAgICAgICwgbV9iYWNrZ3JvdW5kSXNLbm93blRv
QmVPYnNjdXJlZChmYWxzZSkKICAgICAgICAgICAgICwgbV9pc0Fub255bW91cyghbm9kZSkKICAg
ICAgICAgICAgICwgbV9pc1RleHQoZmFsc2UpCiAgICAgICAgICAgICAsIG1faXNCb3goZmFsc2Up
CkBAIC0xMDk3LDcgKzExMDAsNyBAQCBwcml2YXRlOgogICAgICAgICB7CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIC8vIDMwIGJpdHMgaGF2ZSBiZWVuIHVzZWQgaGVyZS4gVGhlcmUgYXJl
IHR3byBiaXRzIGF2YWlsYWJsZS4KKyAgICAgICAgLy8gMzEgYml0cyBoYXZlIGJlZW4gdXNlZCBo
ZXJlLiBUaGVyZSBpcyBvbmUgYml0IGF2YWlsYWJsZS4KICAgICAgICAgQUREX0JPT0xFQU5fQklU
RklFTEQobmVlZHNMYXlvdXQsIE5lZWRzTGF5b3V0KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklU
RklFTEQobmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQsIE5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobm9ybWFsQ2hpbGROZWVk
c0xheW91dCwgTm9ybWFsQ2hpbGROZWVkc0xheW91dCk7CkBAIC0xMTA2LDggKzExMDksOSBAQCBw
cml2YXRlOgogICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChwcmVmZXJyZWRMb2dpY2FsV2lk
dGhzRGlydHksIFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSk7CiAgICAgICAgIEFERF9CT09M
RUFOX0JJVEZJRUxEKGZsb2F0aW5nLCBGbG9hdGluZyk7CiAKLSAgICAgICAgQUREX0JPT0xFQU5f
QklURklFTEQocGFpbnRCYWNrZ3JvdW5kLCBQYWludEJhY2tncm91bmQpOyAvLyBpZiB0aGUgYm94
IGhhcyBzb21ldGhpbmcgdG8gcGFpbnQgaW4gdGhlCisgICAgICAgIEFERF9CT09MRUFOX0JJVEZJ
RUxEKGhhc0JveERlY29yYXRpb25zLCBIYXNCb3hEZWNvcmF0aW9ucyk7IC8vIGlmIHRoZSBib3gg
aGFzIHNvbWV0aGluZyB0byBwYWludCBpbiB0aGUKICAgICAgICAgLy8gYmFja2dyb3VuZCBwYWlu
dGluZyBwaGFzZSAoYmFja2dyb3VuZCwgYm9yZGVyLCBldGMpCisgICAgICAgIEFERF9CT09MRUFO
X0JJVEZJRUxEKGJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkLCBCYWNrZ3JvdW5kSXNLbm93
blRvQmVPYnNjdXJlZCk7CiAKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNBbm9ueW1v
dXMsIElzQW5vbnltb3VzKTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNUZXh0LCBJ
c1RleHQpOwpAQCAtMTE2Miw3ICsxMTY2LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE5vcm1h
bENoaWxkTmVlZHNMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldE5vcm1hbENoaWxkTmVl
ZHNMYXlvdXQoYik7IH0KICAgICB2b2lkIHNldFBvc0NoaWxkTmVlZHNMYXlvdXQoYm9vbCBiKSB7
IG1fYml0ZmllbGRzLnNldFBvc0NoaWxkTmVlZHNMYXlvdXQoYik7IH0KICAgICB2b2lkIHNldE5l
ZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldE5l
ZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoYik7IH0KLSAgICB2b2lkIHNldFBhaW50QmFj
a2dyb3VuZChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0UGFpbnRCYWNrZ3JvdW5kKGIpOyB9CiAg
ICAgdm9pZCBzZXRJc0RyYWdnaW5nKGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRJc0RyYWdnaW5n
KGIpOyB9CiAgICAgdm9pZCBzZXRFdmVySGFkTGF5b3V0KGJvb2wgYikgeyBtX2JpdGZpZWxkcy5z
ZXRFdmVySGFkTGF5b3V0KGIpOyB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NTk3NCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTAzLTE1ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRl
cm1pbmUgYmFja2dyb3VuZCB2aXNpYmlsaXR5IGF0IGxheW91dCB0aW1lCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NTcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL29ic2N1cmVkLWJh
Y2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTAzLTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZGVkIHNvbWUgZXhwZWN0ZWQgcmVzdWx0cyB0aGF0IHNob3VsZCBi
ZSB0aGUgc2FtZSBhY3Jvc3MgcGxhdGZvcm1zLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
b2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxk
LXN0eWxlLWNoYW5nZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvb2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPHN0eWxlPgorICAgIC5wYXJlbnQg
eworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsYWNrOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgfQorICAgIC5jaGlsZCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDI1NSwwLDAuMik7CisgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKzxkaXYgY2xh
c3M9cGFyZW50PgorICAgIDxkaXYgY2xhc3M9Y2hpbGQ+CisgICAgPC9kaXY+Cis8L2Rpdj4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUt
Y2hhbmdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2JzY3VyZWQt
YmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzxzdHlsZT4KKy5wYXJlbnQgeworICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICB3
aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKy5jaGlsZCB7CisgICAgcG9zaXRp
b246IHJlbGF0aXZlOworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB3aWR0aDogMTAw
cHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPXBhcmVudD4K
KzxkaXYgY2xhc3M9Y2hpbGQ+Cis8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJv
ZHkub2Zmc2V0VG9wOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKVsw
XS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuMikiOworPC9zY3JpcHQ+
Cg==
</data>
<flag name="commit-queue"
          id="214944"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193704</attachid>
            <date>2013-03-18 17:34:34 -0700</date>
            <delta_ts>2013-03-19 16:29:02 -0700</delta_ts>
            <desc>Caching and invalidation of obscuration status</desc>
            <filename>background-visibility-layout-7.patch</filename>
            <type>text/plain</type>
            <size>18709</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAzLTE4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjb21wdXRlIGJhY2tn
cm91bmQgb2JzY3VyYXRpb24gb24gZXZlcnkgcmVwYWludAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mvb2JzY3VyZWQtYmFja2dy
b3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UuaHRtbAorICAgICAgICAKKyAgICAgICAgSXQgaXMgZ2Vu
ZXJhbGx5IGVub3VnaCB0byBjb21wdXRlIGJhY2tncm91bmQgb2JzY3VyYXRpb24gc3RhdHVzIG9u
Y2UgcGVyIGxheW91dCByYXRoZXIgdGhhbiBkb2luZyBpdCBvbiBldmVyeSByZXBhaW50LgorICAg
ICAgICBTaW5jZSB0aGVyZSBhcmUgZmV3ZXIgbGF5b3V0cyB0aGFuIHJlcGFpbnRzIHRoaXMgd2ls
bCBhbGxvdyBtb3JlIGV4cGVuc2l2ZSBjaGVja3MgaW4gdGhlIGZ1dHVyZS4KKyAgICAgICAgCisg
ICAgICAgIFdpdGggdGhpcyBwYXRjaCBhZGRzIGNhY2hpbmcgYW5kIGludmFsaWRhdGlvbiBvZiB0
aGUgb2JzY3VyYXRpb24gc3RhdHVzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXQpOgorICAgICAgICAK
KyAgICAgICAgICAgIEludmFsaWRhdGUgdGhlIG9ic2N1cmF0aW9uIHN0YXR1cyBvbiBsYXlvdXQu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAKKyAgICAgICAgICAgIEludmFs
aWRhdGUgdGhlIHBhcmVudCBvYnNjdXJhdGlvbiBzdGF0dXMgaWYgdGhlcmUgaXMgcmVwYWludC1v
bmx5IHN0eWxlIGNoYW5nZSAob2Z0ZW4gYmFja2dyb3VuZCByZWxhdGVkKS4gCisgICAgICAgICAg
ICBUZXN0ZWQgYnkgdGhlIG5ldyBmYXN0L2Nzcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0
eWxlLWNoYW5nZS5odG1sLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmxheW91dCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRv
QmVPYnNjdXJlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFn
ZTo6aW1hZ2VDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpub3RpZnlG
aW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxk
QmVBcHBsaWVkVG9CYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpj
b21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQpOgorICAgICAgICAKKyAgICAgICAg
ICAgIFVzZSBDYWNoZWRJbWFnZTo6Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlIHdoaWNoIGVu
c3VyZXMgdGhhdCB0aGUgZnJhbWUgaXMgZGVjb2RlZCBhbmQgd2UgZ2V0IHRoZSByZWFsIHN0YXR1
cy4KKyAgICAgICAgICAgIFRlc3RlZCBieSBhbiBhZGRpdGlvbmFsIGNhc2UgaW4gZmFzdC9jc3Mv
b2JzY3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UuaHRtbC4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aGFzQm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Ojpjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OlJlbmRlck9i
amVjdEJpdGZpZWxkcyk6CisgICAgICAgIChSZW5kZXJPYmplY3RCaXRmaWVsZHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3RCaXRmaWVsZHM6OmJveERlY29y
YXRpb25TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVj
dEJpdGZpZWxkczo6c2V0Qm94RGVjb3JhdGlvblN0YXRlKToKKyAgICAgICAgCisgICAgICAgICAg
ICBDb21iaW5lIGJveCBkZWNvcmF0aW9uIGJpdCBhbmQgdGhlIG9ic2N1cmF0aW9uIHN0YXR1cyBz
byB3ZSBvbmx5IG5lZWQgb25lIGV4dHJhIGJpdC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6c2V0SGFzQm94RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjppbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YmFja2dyb3VuZElzS25vd25Ub0Jl
T2JzY3VyZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6bGF5b3V0KToKKwogMjAxMy0wMy0xOCAgUm9n
ZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGxlV2luIFZTMjAx
MCBEZWJ1ZyBjb25maWd1cmF0aW9uIGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTQ2MTMxKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4OCw2ICsx
Mzg4LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKICAgICAvLyBJZiB3ZSBoYXZlIGEg
bGlnaHR3ZWlnaHQgY2xpcCwgdGhlcmUgY2FuIG5ldmVyIGJlIGFueSBvdmVyZmxvdyBmcm9tIGNo
aWxkcmVuLgogICAgIGlmIChoYXNDb250cm9sQ2xpcCgpICYmIG1fb3ZlcmZsb3cpCiAgICAgICAg
IGNsZWFyTGF5b3V0T3ZlcmZsb3coKTsKKworICAgIGludmFsaWRhdGVCYWNrZ3JvdW5kT2JzY3Vy
YXRpb25TdGF0dXMoKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAxNDYxMzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcxLDYgKzI3MSwxMCBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBPdXIgb3BhcXVlbmVzcyBtaWdodCBoYXZlIGNo
YW5nZWQgd2l0aG91dCB0cmlnZ2VyaW5nIGxheW91dC4KKyAgICBpZiAocGFyZW50KCkgJiYgKGRp
ZmYgPT0gU3R5bGVEaWZmZXJlbmNlUmVwYWludCB8fCBkaWZmID09IFN0eWxlRGlmZmVyZW5jZVJl
cGFpbnRMYXllcikpCisgICAgICAgIHBhcmVudCgpLT5pbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1
cmF0aW9uU3RhdHVzKCk7CisKICAgICBib29sIGlzQm9keVJlbmRlcmVyID0gaXNCb2R5KCk7CiAg
ICAgYm9vbCBpc1Jvb3RSZW5kZXJlciA9IGlzUm9vdCgpOwogCkBAIC0zODMsNiArMzg3LDcgQEAg
dm9pZCBSZW5kZXJCb3g6OmxheW91dCgpCiAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCk7CiAgICAgfQogICAgIHN0YXRlUHVzaGVyLnBvcCgpOworICAgIGludmFsaWRhdGVCYWNr
Z3JvdW5kT2JzY3VyYXRpb25TdGF0dXMoKTsKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9
CiAKQEAgLTExODIsMTUgKzExODcsMTQgQEAgYm9vbCBSZW5kZXJCb3g6OmJhY2tncm91bmRJc0tu
b3duVG9CZU9wYQogICAgIHJldHVybiBiYWNrZ3JvdW5kUmVjdC5jb250YWlucyhsb2NhbFJlY3Qp
OwogfQogCi1ib29sIFJlbmRlckJveDo6YmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBj
b25zdAorYm9vbCBSZW5kZXJCb3g6OmNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJl
ZCgpCiB7Ci0gICAgQVNTRVJUKCFpc1Jvb3QoKSk7CiAgICAgLy8gVGVzdCB0byBzZWUgaWYgdGhl
IGNoaWxkcmVuIHRyaXZpYWxseSBvYnNjdXJlIHRoZSBiYWNrZ3JvdW5kLgotICAgIC8vIEZJWE1F
OiBUaGlzIHRlc3QgY2FuIGJlIGRvbmUgb25jZSBwZXIgbGF5b3V0IGFuZCBpdCBjYW4gYmUgbXVj
aCBtb3JlIGNvbXByZWhlbnNpdmUuCisgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBjYW4gYmUgbXVj
aCBtb3JlIGNvbXByZWhlbnNpdmUuCiAgICAgaWYgKCFoYXNCYWNrZ3JvdW5kKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAvLyBUYWJsZSBiYWNrZ3JvdW5kIHBhaW50aW5nIGlzIHNwZWNp
YWwuCi0gICAgaWYgKGlzVGFibGUoKSkKKyAgICAvLyBUYWJsZSBhbmQgcm9vdCBiYWNrZ3JvdW5k
IHBhaW50aW5nIGlzIHNwZWNpYWwuCisgICAgaWYgKGlzVGFibGUoKSB8fCBpc1Jvb3QoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdCA9IGJh
Y2tncm91bmRQYWludGVkRXh0ZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5oCShyZXZpc2lvbiAxNDU3ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5Myw3ICs1OTMsNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRQYWludGVkRXh0ZW50KCkgY29uc3Q7CiAgICAgYm9v
bCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9j
YWxSZWN0KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgYmFja2dyb3VuZElzS25vd25Ub0JlT2Jz
Y3VyZWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUJhY2tncm91bmRJc0tub3du
VG9CZU9ic2N1cmVkKCkgT1ZFUlJJREU7CiAgICAgdm9pZCBwYWludEJhY2tncm91bmQoY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSA9
IEJhY2tncm91bmRCbGVlZE5vbmUpOwogICAgIAogICAgIHZvaWQgcGFpbnRGaWxsTGF5ZXIoY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlv
dXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBDb21wb3NpdGVPcGVyYXRvciwgUmVu
ZGVyT2JqZWN0KiBiYWNrZ3JvdW5kT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmNwcAkocmV2aXNpb24gMTQ1Nzg2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDcgKzE2NSw3
IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlQ2hhbmdlZChXcmFwcGVkSW0KIAogICAgIGlmICho
YXNCb3hEZWNvcmF0aW9ucygpIHx8IGhhc01hc2soKSkKICAgICAgICAgUmVuZGVyUmVwbGFjZWQ6
OmltYWdlQ2hhbmdlZChuZXdJbWFnZSwgcmVjdCk7Ci0gICAgCisKICAgICBpZiAoIW1faW1hZ2VS
ZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yODUsNiArMjg1LDggQEAgdm9pZCBSZW5k
ZXJJbWFnZTo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUgogICAgIGlmIChkb2N1bWVudEJlaW5nRGVz
dHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGludmFsaWRhdGVCYWNrZ3JvdW5kT2Jz
Y3VyYXRpb25TdGF0dXMoKTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICBpZiAobmV3SW1hZ2UgPT0gbV9pbWFnZVJlc291cmNlLT5jYWNoZWRJbWFnZSgpKSB7CiAgICAg
ICAgIC8vIHRlbGwgYW55IHBvdGVudGlhbCBjb21wb3NpdGluZyBsYXllcnMKQEAgLTQ3OSwzMiAr
NDgxLDI2IEBAIGJvb2wgUmVuZGVySW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGkKICAgICBp
ZiAoIVJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tn
cm91bmQoYmxlZWRBdm9pZGFuY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gIWJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCk7CisgICAgcmV0dXJuICFjb25zdF9j
YXN0PFJlbmRlckltYWdlKj4odGhpcyktPmJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCk7
CiB9CiAKLWJvb2wgUmVuZGVySW1hZ2U6OmJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkKCkg
Y29uc3QKK2Jvb2wgUmVuZGVySW1hZ2U6OmNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNj
dXJlZCgpCiB7CiAgICAgaWYgKCFtX2ltYWdlUmVzb3VyY2UtPmhhc0ltYWdlKCkgfHwgbV9pbWFn
ZVJlc291cmNlLT5lcnJvck9jY3VycmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQogICAg
IGlmIChtX2ltYWdlUmVzb3VyY2UtPmNhY2hlZEltYWdlKCkgJiYgIW1faW1hZ2VSZXNvdXJjZS0+
Y2FjaGVkSW1hZ2UoKS0+aXNMb2FkZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
RUZpbGxCb3ggYmFja2dyb3VuZENsaXAgPSBzdHlsZSgpLT5iYWNrZ3JvdW5kQ2xpcCgpOwotCiAg
ICAgLy8gQmFja2dyb3VuZCBwYWludHMgdW5kZXIgYm9yZGVycy4KICAgICBpZiAoYmFja2dyb3Vu
ZENsaXAgPT0gQm9yZGVyRmlsbEJveCAmJiBzdHlsZSgpLT5oYXNCb3JkZXIoKSAmJiAhYm9yZGVy
T2JzY3VyZXNCYWNrZ3JvdW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIC8vIEJh
Y2tncm91bmQgc2hvd3MgaW4gcGFkZGluZyBhcmVhLgogICAgIGlmICgoYmFja2dyb3VuZENsaXAg
PT0gQm9yZGVyRmlsbEJveCB8fCBiYWNrZ3JvdW5kQ2xpcCA9PSBQYWRkaW5nRmlsbEJveCkgJiYg
c3R5bGUoKS0+aGFzUGFkZGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBD
aGVjayBmb3IgaW1hZ2Ugd2l0aCBhbHBoYS4KLSAgICBJbWFnZSogaW1hZ2UgPSBtX2ltYWdlUmVz
b3VyY2UtPmltYWdlKCkuZ2V0KCk7Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBpbWFnZS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKCk7Cisg
ICAgcmV0dXJuIG1faW1hZ2VSZXNvdXJjZS0+Y2FjaGVkSW1hZ2UoKSAmJiBtX2ltYWdlUmVzb3Vy
Y2UtPmNhY2hlZEltYWdlKCktPmN1cnJlbnRGcmFtZUtub3duVG9CZU9wYXF1ZSh0aGlzKTsKIH0K
IAogTGF5b3V0VW5pdCBSZW5kZXJJbWFnZTo6bWluaW11bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCShyZXZpc2lvbiAxNDU3
ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAkod29ya2luZyBj
b3B5KQpAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50
UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBj
b25zdCBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAJKHJldmlzaW9uIDE0NjEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTExLDcgKzE5MTEsNyBAQCB2b2lk
IFJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlCiAgICAgICAgICAgICBjbGVhclBv
c2l0aW9uZWRTdGF0ZSgpOwogICAgICAgICB9CiAgICAgICAgIHNldEhvcml6b250YWxXcml0aW5n
TW9kZSh0cnVlKTsKLSAgICAgICAgc2V0UGFpbnRCYWNrZ3JvdW5kKGZhbHNlKTsKKyAgICAgICAg
c2V0SGFzQm94RGVjb3JhdGlvbnMoZmFsc2UpOwogICAgICAgICBzZXRIYXNPdmVyZmxvd0NsaXAo
ZmFsc2UpOwogICAgICAgICBzZXRIYXNUcmFuc2Zvcm0oZmFsc2UpOwogICAgICAgICBzZXRIYXNS
ZWZsZWN0aW9uKGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgJKHJldmlzaW9uIDE0NTc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTcyLDggKzU3MiwxNSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYml0Zmll
bGRzLmhvcml6b250YWxXcml0aW5nTW9kZSgpOyB9CiAKICAgICBib29sIGhhc0xheWVyKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaGFzTGF5ZXIoKTsgfQotICAgIAotICAgIGJvb2wgaGFz
Qm94RGVjb3JhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5wYWludEJhY2tncm91
bmQoKTsgfQorCisgICAgZW51bSBCb3hEZWNvcmF0aW9uU3RhdGUgeworICAgICAgICBOb0JveERl
Y29yYXRpb25zLAorICAgICAgICBIYXNCb3hEZWNvcmF0aW9uc0FuZEJhY2tncm91bmRPYnNjdXJh
dGlvblN0YXR1c0ludmFsaWQsCisgICAgICAgIEhhc0JveERlY29yYXRpb25zQW5kQmFja2dyb3Vu
ZElzS25vd25Ub0JlT2JzY3VyZWQsCisgICAgICAgIEhhc0JveERlY29yYXRpb25zQW5kQmFja2dy
b3VuZE1heUJlVmlzaWJsZSwKKyAgICB9OworICAgIGJvb2wgaGFzQm94RGVjb3JhdGlvbnMoKSBj
b25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5ib3hEZWNvcmF0aW9uU3RhdGUoKSAhPSBOb0JveERl
Y29yYXRpb25zOyB9CisgICAgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpOwog
ICAgIGJvb2wgYm9yZGVySW1hZ2VJc0xvYWRlZEFuZENhbkJlUmVuZGVyZWQoKSBjb25zdDsKICAg
ICBib29sIG11c3RSZXBhaW50QmFja2dyb3VuZE9yQm9yZGVyKCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aGFzQmFja2dyb3VuZCgpOyB9
CkBAIC02ODYsNyArNjkzLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RmxvYXRpbmcoYm9v
bCBiID0gdHJ1ZSkgeyBtX2JpdGZpZWxkcy5zZXRGbG9hdGluZyhiKTsgfQogICAgIHZvaWQgc2V0
SW5saW5lKGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMuc2V0SXNJbmxpbmUoYik7IH0KLSAg
ICB2b2lkIHNldEhhc0JveERlY29yYXRpb25zKGJvb2wgYiA9IHRydWUpIHsgbV9iaXRmaWVsZHMu
c2V0UGFpbnRCYWNrZ3JvdW5kKGIpOyB9CisKKyAgICB2b2lkIHNldEhhc0JveERlY29yYXRpb25z
KGJvb2wgYiA9IHRydWUpOworICAgIHZvaWQgaW52YWxpZGF0ZUJhY2tncm91bmRPYnNjdXJhdGlv
blN0YXR1cygpOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0Jl
T2JzY3VyZWQoKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgdm9pZCBzZXRJc1RleHQoKSB7IG1f
Yml0ZmllbGRzLnNldElzVGV4dCh0cnVlKTsgfQogICAgIHZvaWQgc2V0SXNCb3goKSB7IG1fYml0
ZmllbGRzLnNldElzQm94KHRydWUpOyB9CiAgICAgdm9pZCBzZXRSZXBsYWNlZChib29sIGIgPSB0
cnVlKSB7IG1fYml0ZmllbGRzLnNldElzUmVwbGFjZWQoYik7IH0KQEAgLTEwNzUsNyArMTA4Niw2
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAsIG1fbmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xh
eW91dChmYWxzZSkKICAgICAgICAgICAgICwgbV9wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHko
ZmFsc2UpCiAgICAgICAgICAgICAsIG1fZmxvYXRpbmcoZmFsc2UpCi0gICAgICAgICAgICAsIG1f
cGFpbnRCYWNrZ3JvdW5kKGZhbHNlKQogICAgICAgICAgICAgLCBtX2lzQW5vbnltb3VzKCFub2Rl
KQogICAgICAgICAgICAgLCBtX2lzVGV4dChmYWxzZSkKICAgICAgICAgICAgICwgbV9pc0JveChm
YWxzZSkKQEAgLTEwOTQsMTAgKzExMDQsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgbV9w
b3NpdGlvbmVkU3RhdGUoSXNTdGF0aWNhbGx5UG9zaXRpb25lZCkKICAgICAgICAgICAgICwgbV9z
ZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25Ob25lKQogICAgICAgICAgICAgLCBtX2Zsb3dUaHJlYWRT
dGF0ZShOb3RJbnNpZGVGbG93VGhyZWFkKQorICAgICAgICAgICAgLCBtX2JveERlY29yYXRpb25T
dGF0ZShOb0JveERlY29yYXRpb25zKQogICAgICAgICB7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIC8vIDMwIGJpdHMgaGF2ZSBiZWVuIHVzZWQgaGVyZS4gVGhlcmUgYXJlIHR3byBiaXRz
IGF2YWlsYWJsZS4KKyAgICAgICAgLy8gMzEgYml0cyBoYXZlIGJlZW4gdXNlZCBoZXJlLiBUaGVy
ZSBpcyBvbmUgYml0IGF2YWlsYWJsZS4KICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobmVl
ZHNMYXlvdXQsIE5lZWRzTGF5b3V0KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobmVl
ZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQsIE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0
KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQobm9ybWFsQ2hpbGROZWVkc0xheW91dCwg
Tm9ybWFsQ2hpbGROZWVkc0xheW91dCk7CkBAIC0xMTA2LDkgKzExMTcsNiBAQCBwcml2YXRlOgog
ICAgICAgICBBRERfQk9PTEVBTl9CSVRGSUVMRChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHks
IFByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSk7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJ
RUxEKGZsb2F0aW5nLCBGbG9hdGluZyk7CiAKLSAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQo
cGFpbnRCYWNrZ3JvdW5kLCBQYWludEJhY2tncm91bmQpOyAvLyBpZiB0aGUgYm94IGhhcyBzb21l
dGhpbmcgdG8gcGFpbnQgaW4gdGhlCi0gICAgICAgIC8vIGJhY2tncm91bmQgcGFpbnRpbmcgcGhh
c2UgKGJhY2tncm91bmQsIGJvcmRlciwgZXRjKQotCiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJ
RUxEKGlzQW5vbnltb3VzLCBJc0Fub255bW91cyk7CiAgICAgICAgIEFERF9CT09MRUFOX0JJVEZJ
RUxEKGlzVGV4dCwgSXNUZXh0KTsKICAgICAgICAgQUREX0JPT0xFQU5fQklURklFTEQoaXNCb3gs
IElzQm94KTsKQEAgLTExMzMsNiArMTE0MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVk
IG1fcG9zaXRpb25lZFN0YXRlIDogMjsgLy8gUG9zaXRpb25lZFN0YXRlCiAgICAgICAgIHVuc2ln
bmVkIG1fc2VsZWN0aW9uU3RhdGUgOiAzOyAvLyBTZWxlY3Rpb25TdGF0ZQogICAgICAgICB1bnNp
Z25lZCBtX2Zsb3dUaHJlYWRTdGF0ZSA6IDI7IC8vIEZsb3dUaHJlYWRTdGF0ZQorICAgICAgICB1
bnNpZ25lZCBtX2JveERlY29yYXRpb25TdGF0ZSA6IDI7IC8vIEJveERlY29yYXRpb25TdGF0ZQog
CiAgICAgcHVibGljOgogICAgICAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlID09IElzT3V0T2ZGbG93UG9zaXRpb25lZDsgfQpA
QCAtMTE1Miw2ICsxMTYxLDkgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIEFMV0FZU19J
TkxJTkUgRmxvd1RocmVhZFN0YXRlIGZsb3dUaHJlYWRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEZsb3dUaHJlYWRTdGF0ZT4obV9mbG93VGhyZWFkU3RhdGUpOyB9CiAgICAgICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBzZXRGbG93VGhyZWFkU3RhdGUoRmxvd1RocmVhZFN0YXRlIGZs
b3dUaHJlYWRTdGF0ZSkgeyBtX2Zsb3dUaHJlYWRTdGF0ZSA9IGZsb3dUaHJlYWRTdGF0ZTsgfQor
CisgICAgICAgIEFMV0FZU19JTkxJTkUgQm94RGVjb3JhdGlvblN0YXRlIGJveERlY29yYXRpb25T
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEJveERlY29yYXRpb25TdGF0ZT4obV9i
b3hEZWNvcmF0aW9uU3RhdGUpOyB9CisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRCb3hE
ZWNvcmF0aW9uU3RhdGUoQm94RGVjb3JhdGlvblN0YXRlIGJveERlY29yYXRpb25TdGF0ZSkgeyBt
X2JveERlY29yYXRpb25TdGF0ZSA9IGJveERlY29yYXRpb25TdGF0ZTsgfQogICAgIH07CiAKICN1
bmRlZiBBRERfQk9PTEVBTl9CSVRGSUVMRApAQCAtMTE2Miw3ICsxMTc0LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRz
LnNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXQoYik7IH0KICAgICB2b2lkIHNldFBvc0NoaWxkTmVl
ZHNMYXlvdXQoYm9vbCBiKSB7IG1fYml0ZmllbGRzLnNldFBvc0NoaWxkTmVlZHNMYXlvdXQoYik7
IH0KICAgICB2b2lkIHNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoYm9vbCBiKSB7
IG1fYml0ZmllbGRzLnNldE5lZWRzU2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoYik7IH0KLSAg
ICB2b2lkIHNldFBhaW50QmFja2dyb3VuZChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0UGFpbnRC
YWNrZ3JvdW5kKGIpOyB9CiAgICAgdm9pZCBzZXRJc0RyYWdnaW5nKGJvb2wgYikgeyBtX2JpdGZp
ZWxkcy5zZXRJc0RyYWdnaW5nKGIpOyB9CiAgICAgdm9pZCBzZXRFdmVySGFkTGF5b3V0KGJvb2wg
YikgeyBtX2JpdGZpZWxkcy5zZXRFdmVySGFkTGF5b3V0KGIpOyB9CiAKQEAgLTEyOTgsNiArMTMw
OSwzMyBAQCBpbmxpbmUgdm9pZCBSZW5kZXJPYmplY3Q6OnNldFNlbGVjdGlvblN0CiAgICAgc2V0
U2VsZWN0aW9uU3RhdGUoc3RhdGUpOwogfQogCitpbmxpbmUgdm9pZCBSZW5kZXJPYmplY3Q6OnNl
dEhhc0JveERlY29yYXRpb25zKGJvb2wgYikKK3sKKyAgICBpZiAoIWIpIHsKKyAgICAgICAgbV9i
aXRmaWVsZHMuc2V0Qm94RGVjb3JhdGlvblN0YXRlKE5vQm94RGVjb3JhdGlvbnMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmIChoYXNCb3hEZWNvcmF0aW9ucygpKQorICAgICAgICBy
ZXR1cm47CisgICAgbV9iaXRmaWVsZHMuc2V0Qm94RGVjb3JhdGlvblN0YXRlKEhhc0JveERlY29y
YXRpb25zQW5kQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzSW52YWxpZCk7Cit9CisKK2lubGlu
ZSB2b2lkIFJlbmRlck9iamVjdDo6aW52YWxpZGF0ZUJhY2tncm91bmRPYnNjdXJhdGlvblN0YXR1
cygpCit7CisgICAgaWYgKCFoYXNCb3hEZWNvcmF0aW9ucygpKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9iaXRmaWVsZHMuc2V0Qm94RGVjb3JhdGlvblN0YXRlKEhhc0JveERlY29yYXRpb25zQW5k
QmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzSW52YWxpZCk7Cit9CisKK2lubGluZSBib29sIFJl
bmRlck9iamVjdDo6YmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKQoreworICAgIGlmICht
X2JpdGZpZWxkcy5ib3hEZWNvcmF0aW9uU3RhdGUoKSA9PSBIYXNCb3hEZWNvcmF0aW9uc0FuZEJh
Y2tncm91bmRPYnNjdXJhdGlvblN0YXR1c0ludmFsaWQpIHsKKyAgICAgICAgQm94RGVjb3JhdGlv
blN0YXRlIGJveERlY29yYXRpb25TdGF0ZSA9IGNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVP
YnNjdXJlZCgpID8gSGFzQm94RGVjb3JhdGlvbnNBbmRCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNj
dXJlZCA6IEhhc0JveERlY29yYXRpb25zQW5kQmFja2dyb3VuZE1heUJlVmlzaWJsZTsKKyAgICAg
ICAgbV9iaXRmaWVsZHMuc2V0Qm94RGVjb3JhdGlvblN0YXRlKGJveERlY29yYXRpb25TdGF0ZSk7
CisgICAgfQorICAgIHJldHVybiBtX2JpdGZpZWxkcy5ib3hEZWNvcmF0aW9uU3RhdGUoKSA9PSBI
YXNCb3hEZWNvcmF0aW9uc0FuZEJhY2tncm91bmRJc0tub3duVG9CZU9ic2N1cmVkOworfQorCiBp
bmxpbmUgdm9pZCBtYWtlTWF0cml4UmVuZGVyYWJsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0
cml4LCBib29sIGhhczNEUmVuZGVyaW5nKQogewogI2lmICFFTkFCTEUoM0RfUkVOREVSSU5HKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCShyZXZp
c2lvbiAxNDU3NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MywxMSArOTMsMTIgQEAgdm9pZCBSZW5kZXJSZXBsYWNl
ZDo6bGF5b3V0KCkKICAgICBtX292ZXJmbG93LmNsZWFyKCk7CiAgICAgYWRkVmlzdWFsRWZmZWN0
T3ZlcmZsb3coKTsKICAgICB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIAorICAgIGludmFs
aWRhdGVCYWNrZ3JvdW5kT2JzY3VyYXRpb25TdGF0dXMoKTsKKwogICAgIHJlcGFpbnRlci5yZXBh
aW50QWZ0ZXJMYXlvdXQoKTsKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9Ci0gCisKIHZv
aWQgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1NpemVDaGFuZ2VkKCkKIHsKICAgICBpbnQgc2Nh
bGVkV2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KGNEZWZhdWx0V2lkdGggKiBzdHlsZSgpLT5lZmZl
Y3RpdmVab29tKCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2MTI5KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDMtMTggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNvbXB1dGUg
YmFja2dyb3VuZCBvYnNjdXJhdGlvbiBvbiBldmVyeSByZXBhaW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL29ic2N1cmVkLWJhY2tn
cm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvcmVwYWludC9vYnNjdXJlZC1iYWNrZ3JvdW5kLW5vLXJlcGFp
bnQuaHRtbDoKKwogMjAxMy0wMy0xOCAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFZhcmlhbnQgb2Ygbm9uLXByaW1hcnkgZmVsbC1iYWNrIFNWR0Zv
bnQgY2F1c2VzIGNyYXNoLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2JzY3VyZWQtYmFj
a2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9vYnNjdXJlZC1iYWNrZ3JvdW5kLWNoaWxkLXN0eWxlLWNoYW5n
ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2Jz
Y3VyZWQtYmFja2dyb3VuZC1jaGlsZC1zdHlsZS1jaGFuZ2UtZXhwZWN0ZWQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOCBAQAorPHN0eWxlPgorICAgIC5wYXJlbnQgeworICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorICAgIC5j
aGlsZCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiYSgwLDI1NSwwLDAuMik7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICB9CisgICAgPC9zdHlsZT4KKzxkaXYgY2xhc3M9cGFyZW50Pgor
ICAgIDxkaXYgY2xhc3M9Y2hpbGQ+CisgICAgPC9kaXY+Cis8L2Rpdj4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvb2JzY3VyZWQtYmFja2dyb3VuZC1j
aGlsZC1zdHlsZS1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL29ic2N1cmVkLWJhY2tncm91bmQtY2hpbGQtc3R5bGUtY2hhbmdlLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjIgQEAKKzxzdHlsZT4KKy5wYXJlbnQgeworICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICB3aWR0aDogMTAwcHg7
CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKy5jaGlsZCB7CisgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVp
Z2h0OiAxMDBweDsKK30KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPXBhcmVudD4KKzxkaXYgY2xhc3M9
Y2hpbGQ+Cis8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkub2Zmc2V0VG9w
OworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hpbGQiKVswXS5zdHlsZS5iYWNr
Z3JvdW5kQ29sb3IgPSAicmdiYSgwLDI1NSwwLDAuMikiOworPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L29ic2N1cmVkLWJhY2tncm91
bmQtbm8tcmVwYWludC5odG1sCShyZXZpc2lvbiAxNDU3ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvb2JzY3VyZWQtYmFja2dyb3VuZC1uby1yZXBhaW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDkgQEAKICAgICAgICAgaGVpZ2h0OiA1MHB4OwogICAgICAgICB3aWR0
aDogNTBweDsKICAgICB9CisgICAgI3Rlc3QzIGltZyB7CisgICAgICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybChyZXNvdXJjZXMvYW5pbWF0ZWQuZ2lmKQorICAgIH0KIDwvc3R5bGU+CiA8c2NyaXB0
PgogICAgIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgb2JzY3VyZWQgYW5pbWF0ZWQgZ2lmIGRvZXMg
bm90IHRyaWdnZXIgcmVwYWludHMuIFRoaXMgdGVzdCByZXF1aXJlcyBEUlQuIik7CkBAIC03NSw2
ICs3OCw5IEBACiAgICAgICAgIDwvZGl2PgogICAgIDwvZGl2PgogPC9kaXY+Cis8ZGl2IGlkPSJ0
ZXN0MyI+CisgICAgPGltZyBzcmM9InJlc291cmNlcy9hcHBsZS5qcGciPgorPC9kaXY+CiA8L2Jv
ZHk+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2h0bWw+Cg==
</data>
<flag name="review"
          id="215308"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="215317"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>