<?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>24684</bug_id>
          
          <creation_ts>2009-03-18 16:39:02 -0700</creation_ts>
          <short_desc>Clean up WebCore based on Coverty Prevent static analysis results</short_desc>
          <delta_ts>2009-03-25 15:16:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>hyatt</cc>
    
    <cc>playmobil</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114250</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-18 16:39:02 -0700</bug_when>
    <thetext>Clean up WebCore based on Coverty Prevent static analysis results

See attached patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114265</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-18 18:19:02 -0700</bug_when>
    <thetext>There is no attached patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114268</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-18 18:40:05 -0700</bug_when>
    <thetext>Yup.  Patch had an issue, will be attached soon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114342</commentid>
    <comment_count>3</comment_count>
      <attachid>28756</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-19 11:42:33 -0700</bug_when>
    <thetext>Created attachment 28756
First pass cleanup with changelog, all tests pass

 WebCore/ChangeLog                                  |  107 +++++++++++++++++
 WebCore/css/CSSFontSelector.cpp                    |   12 ++-
 WebCore/css/CSSStyleSelector.cpp                   |    6 +
 WebCore/css/CSSStyleSheet.cpp                      |    7 +-
 WebCore/css/SVGCSSStyleSelector.cpp                |  121 +++++---------------
 WebCore/dom/ContainerNode.cpp                      |   14 +-
 WebCore/dom/Document.cpp                           |    2 -
 WebCore/editing/ApplyStyleCommand.cpp              |   10 +-
 .../editing/InsertParagraphSeparatorCommand.cpp    |    3 +-
 WebCore/editing/markup.cpp                         |    3 +-
 WebCore/html/CanvasStyle.cpp                       |   13 ++-
 WebCore/loader/TextDocument.cpp                    |   13 ++-
 WebCore/page/FocusController.cpp                   |    6 +-
 WebCore/page/animation/AnimationBase.h             |    5 +-
 WebCore/page/animation/AnimationController.cpp     |    1 +
 WebCore/page/animation/ImplicitAnimation.cpp       |    3 +-
 WebCore/page/animation/ImplicitAnimation.h         |    4 +-
 WebCore/page/animation/KeyframeAnimation.cpp       |    2 +-
 WebCore/page/animation/KeyframeAnimation.h         |    4 +-
 WebCore/platform/chromium/PasteboardChromium.cpp   |   19 ++--
 WebCore/platform/graphics/GlyphPageTreeNode.cpp    |    1 +
 .../transforms/PerspectiveTransformOperation.cpp   |    5 +-
 .../transforms/RotateTransformOperation.cpp        |    8 +-
 WebCore/rendering/RenderLayer.cpp                  |   12 +-
 WebCore/rendering/RenderTableSection.cpp           |    8 +-
 WebCore/rendering/SVGRenderSupport.cpp             |    2 +-
 WebCore/rendering/bidi.cpp                         |    3 +-
 27 files changed, 226 insertions(+), 168 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114399</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-03-19 16:06:59 -0700</bug_when>
    <thetext>Please split this up. Many of these changes are completely unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114798</commentid>
    <comment_count>5</comment_count>
      <attachid>28756</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-23 11:09:48 -0700</bug_when>
    <thetext>Comment on attachment 28756
First pass cleanup with changelog, all tests pass

r- based on Marks comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115015</commentid>
    <comment_count>6</comment_count>
      <attachid>28756</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:02 -0700</bug_when>
    <thetext>Comment on attachment 28756
First pass cleanup with changelog, all tests pass

I&apos;ve split this into a bunch of patches.  Attaching...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115016</commentid>
    <comment_count>7</comment_count>
      <attachid>28899</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:24 -0700</bug_when>
    <thetext>Created attachment 28899
Coverty fixes in Animations/Transforms

 WebCore/ChangeLog                                  |   29 ++++++++++++++++++++
 WebCore/page/animation/AnimationBase.h             |    5 +--
 WebCore/page/animation/AnimationController.cpp     |    1 +
 WebCore/page/animation/ImplicitAnimation.cpp       |    3 +-
 WebCore/page/animation/ImplicitAnimation.h         |    4 +-
 WebCore/page/animation/KeyframeAnimation.cpp       |    2 +-
 WebCore/page/animation/KeyframeAnimation.h         |    4 +-
 .../transforms/PerspectiveTransformOperation.cpp   |    5 +---
 .../transforms/RotateTransformOperation.cpp        |    8 +----
 9 files changed, 41 insertions(+), 20 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115017</commentid>
    <comment_count>8</comment_count>
      <attachid>28900</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:27 -0700</bug_when>
    <thetext>Created attachment 28900
Font fallback cleanup and added ASSERT for GlyphPageTreeNode

 WebCore/ChangeLog                               |   17 +++++++++++++++++
 WebCore/css/CSSFontSelector.cpp                 |   12 ++++++++----
 WebCore/platform/graphics/GlyphPageTreeNode.cpp |    1 +
 3 files changed, 26 insertions(+), 4 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115018</commentid>
    <comment_count>9</comment_count>
      <attachid>28901</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:29 -0700</bug_when>
    <thetext>Created attachment 28901
CSS dead code removal and cleanup from Coverty errors

 WebCore/ChangeLog                   |   24 +++++++
 WebCore/css/CSSStyleSelector.cpp    |    6 ++
 WebCore/css/CSSStyleSheet.cpp       |    7 +-
 WebCore/css/SVGCSSStyleSelector.cpp |  121 +++++++++--------------------------
 4 files changed, 63 insertions(+), 95 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115019</commentid>
    <comment_count>10</comment_count>
      <attachid>28902</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:32 -0700</bug_when>
    <thetext>Created attachment 28902
Style cleanup and dead code removal in dom, editing

 WebCore/ChangeLog                                  |   31 ++++++++++++++++++++
 WebCore/dom/ContainerNode.cpp                      |   14 ++++----
 WebCore/dom/Document.cpp                           |    2 -
 WebCore/editing/ApplyStyleCommand.cpp              |   10 +++---
 .../editing/InsertParagraphSeparatorCommand.cpp    |    3 +-
 WebCore/editing/markup.cpp                         |    3 +-
 6 files changed, 45 insertions(+), 18 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115020</commentid>
    <comment_count>11</comment_count>
      <attachid>28903</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:34 -0700</bug_when>
    <thetext>Created attachment 28903
Fix case where lBreak.obj-&gt;isBR() when lBreak.obj was NULL

 WebCore/ChangeLog          |   15 +++++++++++++++
 WebCore/rendering/bidi.cpp |    3 +--
 2 files changed, 16 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115021</commentid>
    <comment_count>12</comment_count>
      <attachid>28904</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:37 -0700</bug_when>
    <thetext>Created attachment 28904
Make TextTokenizer ASSERT that the buffer was freed

 WebCore/ChangeLog               |   13 +++++++++++++
 WebCore/loader/TextDocument.cpp |   13 +++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115022</commentid>
    <comment_count>13</comment_count>
      <attachid>28905</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:39 -0700</bug_when>
    <thetext>Created attachment 28905
Move ASSERT(foo) to before where foo-&gt; is used

 WebCore/ChangeLog                                |   15 +++++++++++++++
 WebCore/platform/chromium/PasteboardChromium.cpp |   19 +++++++++----------
 WebCore/rendering/SVGRenderSupport.cpp           |    2 +-
 3 files changed, 25 insertions(+), 11 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115023</commentid>
    <comment_count>14</comment_count>
      <attachid>28906</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 13:12:42 -0700</bug_when>
    <thetext>Created attachment 28906
Remove dead code and style cleanup

 WebCore/ChangeLog                        |   23 +++++++++++++++++++++++
 WebCore/html/CanvasStyle.cpp             |   13 +++++++++++--
 WebCore/page/FocusController.cpp         |    6 +++---
 WebCore/rendering/RenderLayer.cpp        |   12 ++++++------
 WebCore/rendering/RenderTableSection.cpp |    8 +++-----
 5 files changed, 46 insertions(+), 16 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115026</commentid>
    <comment_count>15</comment_count>
      <attachid>28899</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-03-24 13:19:55 -0700</bug_when>
    <thetext>Comment on attachment 28899
Coverty fixes in Animations/Transforms

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115042</commentid>
    <comment_count>16</comment_count>
      <attachid>28906</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 14:14:07 -0700</bug_when>
    <thetext>Comment on attachment 28906
Remove dead code and style cleanup

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115044</commentid>
    <comment_count>17</comment_count>
      <attachid>28901</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 14:19:10 -0700</bug_when>
    <thetext>Comment on attachment 28901
CSS dead code removal and cleanup from Coverty errors

&gt; +        * css/CSSStyleSheet.cpp:
&gt; +        (WebCore::CSSStyleSheet::styleSheetChanged):
&gt; +          Removing dead code, &quot;root&quot; can never be null here.

Can static_cast&lt;CSSStyleSheet*&gt;(root)-&gt;doc() ever be null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115045</commentid>
    <comment_count>18</comment_count>
      <attachid>28903</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 14:20:00 -0700</bug_when>
    <thetext>Comment on attachment 28903
Fix case where lBreak.obj-&gt;isBR() when lBreak.obj was NULL

&gt; +        Fix case where lBreak.obj-&gt;isBR() when lBreak.obj was NULL
&gt; +	https://bugs.webkit.org/show_bug.cgi?id=24684
&gt; +
&gt; +	I don&apos;t have a test case where we were taking the wrong path here
&gt; +	However, adding an ASSERT(lBreak.obj) before this usage caused
&gt; +	multiple bidi tests to fail, so lBreak.obj can be null here.

Tabs in ChangeLog.

&gt; -    if (lBreak == resolver.position() &amp;&amp; !lBreak.obj-&gt;isBR()) {
&gt; +    if (lBreak == resolver.position() &amp;&amp; (!lBreak.obj || !lBreak.obj-&gt;isBR())) {

Seems harmless to add this, even though it may be impossible in practice.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115046</commentid>
    <comment_count>19</comment_count>
      <attachid>28905</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-24 14:22:28 -0700</bug_when>
    <thetext>Comment on attachment 28905
Move ASSERT(foo) to before where foo-&gt; is used

I understand the desire to move asserts before the thing asserted are used, but I don&apos;t like the idea of moving all the declarations to the top of the function. Could you make a more limited version that doesn&apos;t move the definitions of renderer, cachedImage, and image up to the top of the function?

In either case, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115052</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-24 14:58:14 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 28901 [review])
&gt; &gt; +        * css/CSSStyleSheet.cpp:
&gt; &gt; +        (WebCore::CSSStyleSheet::styleSheetChanged):
&gt; &gt; +          Removing dead code, &quot;root&quot; can never be null here.
&gt; 
&gt; Can static_cast&lt;CSSStyleSheet*&gt;(root)-&gt;doc() ever be null?

I&apos;m not sure.  It appears it can be, not necessarily in this case.  But I&apos;ll update the patch anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115171</commentid>
    <comment_count>21</comment_count>
      <attachid>28933</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-25 10:19:18 -0700</bug_when>
    <thetext>Created attachment 28933
CSS dead code removal and cleanup from Coverty errors

 WebCore/ChangeLog                   |   24 +++++++
 WebCore/css/CSSStyleSelector.cpp    |    6 ++
 WebCore/css/CSSStyleSheet.cpp       |    2 +-
 WebCore/css/SVGCSSStyleSelector.cpp |  121 +++++++++--------------------------
 4 files changed, 61 insertions(+), 92 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115172</commentid>
    <comment_count>22</comment_count>
      <attachid>28901</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-25 10:20:04 -0700</bug_when>
    <thetext>Comment on attachment 28901
CSS dead code removal and cleanup from Coverty errors

Now null-checking doc() again, per darin&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115235</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-25 15:16:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/41983
http://trac.webkit.org/changeset/41984
http://trac.webkit.org/changeset/41985
http://trac.webkit.org/changeset/41986
http://trac.webkit.org/changeset/41988
http://trac.webkit.org/changeset/41989
http://trac.webkit.org/changeset/41990
http://trac.webkit.org/changeset/41991
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28756</attachid>
            <date>2009-03-19 11:42:33 -0700</date>
            <delta_ts>2009-03-24 13:12:02 -0700</delta_ts>
            <desc>First pass cleanup with changelog, all tests pass</desc>
            <filename>First-pass-cleanup-with-changelog-all-tests-pass.patch</filename>
            <type>text/plain</type>
            <size>40177</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YzVkZTNiMzNjZDVlMzQ5YTA0NmUxZTQwYWE1ZGRiNTU0ODM0YTg5NQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MTg3YzI4Li40YmFhODkx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDExMCBAQAorMjAwOS0wMy0xOCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNp
bmcgcmVzdWx0cyBmcm9tIGEgcnVuIG9mIENvdmVydHkgUHJldmVudCBvdmVyIHRoZSBDaHJvbWl1
bSBjb3B5IG9mIFdlYkNvcmUKKyAgICAgICAgdGhlc2UgYXJlIGNoYW5nZXMgdG8gbWFrZSBjb2Rl
IGNsZWFuZXIgYW5kIHByZXZlbnQgcG9zc2libGUgY3Jhc2hlcy4KKworICAgICAgICAqIGNzcy9D
U1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUZvbnRGYWNlcyk6
CisgICAgICAgICAgQ292ZXJ0eSB3YXMgY29uY2VybmVkIHRoYXQgaXQgd2FzIHBvc3NpYmxlIHRv
IGluZGV4IG9mZiB0aGUgZW5kIG9mIHdlaWdodEZhbGxiYWNrUnVsZVNldHMKKyAgICAgICAgICBJ
IGNhbid0IHJlYWQgdGhlIGNvZGUgd2VsbCBlbm91Z2ggdG8gdGVsbCwgc28gSSB0cmllZCB0byBt
YWtlIHRoZSBjb2RlIGNsZWFyZXIKKyAgICAgICAgICBhbmQgYWRkZWQgYW4gQVNTRVJULgorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAgIEV2ZXJ5IG90aGVyIHBsYWNl
IGluIHRoZSBjb2RlIHdlIGNoZWNrIHNldHRpbmdzKCkgZm9yIE5VTEwsIHNvIEkgbWFkZSB0aGVz
ZSBwbGFjZXMKKyAgICAgICAgICBjaGVjayB0b28sIGV2ZW4gdGhvdWdoIHdlIHNob3VsZCBuZXZl
ciBiZSByZXNvbHZpbmcgc3R5bGUgYWdhaW5zdCBhIGRvY3VtZW50IHdoaWNoIGhhcworICAgICAg
ICAgIG5vIGZyYW1lICh3aGljaCBJIGJlbGlldmUgaXMgdGhlIG9ubHkgdGltZSBzZXR0aW5ncygp
IGNhbiBiZSBudWxsKQorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OnN0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAgICBS
ZW1vdmluZyBkZWFkIGNvZGUsICJyb290IiBjYW4gbmV2ZXIgYmUgbnVsbCBoZXJlLgorICAgICAg
ICAqIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9y
RnJvbVNWR0NvbG9yQ1NTVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlTVkdQcm9wZXJ0eSk6CisgICAgICAgICAgRXh0cmEgcmV0dXJucyBpbiB0aGUgb2xk
IG1hY3JvcyBjYXVzZWQgZGVhZCBjb2RlLiAgUmVtb3ZpbmcgdGhlIG9sZCBtYWNyb3MgYW5kIHVz
ZSBtb2Rlcm4KKyAgICAgICAgICBvbmVzIGluc3RlYWQuIDopCisgICAgICAgICAgRXh0cmEgbnVs
bCBjaGVja3MgdG8gdmFsdWUgd2VyZSBub3QgbmVlZGVkLiAgQWRkZWQgYW4gQVNTRVJUIGF0IHRo
ZSB0b3Agb2YgdGhlIGZ1bmN0aW9uCisgICAgICAgICAgdG8gbWFrZSBpdCBjbGVhciB0aGF0IHZh
bHVlIHdpbGwgbmV2ZXIgYmUgTlVMTC4KKyAgICAgICAgICBBZGRlZCBjb2xvckZyb21TVkdDb2xv
ckNTU1ZhbHVlIHRvIGNsZWFuIHVwIHRoZSBjb2RlIGEgbGl0dGxlLgorICAgICAgICAqIGRvbS9D
b250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldFVw
cGVyTGVmdENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRMb3dl
clJpZ2h0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmdldFJlY3Qp
OgorICAgICAgICAgIENvdmVydHkgd2FzIChyaWdodGx5KSBjb25mdXNlZCBhcyB0byB3aGF0IHRo
ZSBoZWxsICJvIiB3YXMgYmVpbmcgdXNlZCBmb3IKKyAgICAgICAgICBhbmQgd2hldGhlciBvciBu
b3QgaXQgd291bGQgZXZlciBiZSBOVUxMLiAgSSBhZGRlZCBzb21lIEFTU0VSVFMgc28gdGhhdCBw
ZW9wbGUgKGFuZCBtYWNoaW5lcykKKyAgICAgICAgICB3b3VsZCBiZSBsZXNzIGNvbmZ1c2VkIGFi
b3V0IHRoZSBsb2dpYyBpbiBnZXRVcHBlckxlZnRDb3JuZXIvZ2V0TG93ZXJSaWdodENvcm5lcgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cmVjYWxjU3R5bGUpOgorICAgICAgICAgIFJlbW92ZSBkZWFkIGNvZGUsIHRoaXMgYmxvY2sgYWxy
ZWFkeSBjaGVja2VkIHRoYXQgY2hhbmdlID09IEZvcmNlCisgICAgICAgICogZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
cmVtb3ZlSW5saW5lU3R5bGUpOgorICAgICAgICAgIENvdmVydHkgY29ycmVjdGx5IGlkZW50aWZp
ZWQgdGhhdCB0cmF2ZXJzZVByZXZpb3VzTm9kZVBvc3RPcmRlciBjYW4gcmV0dXJuIE5VTEwsIHRo
dXMKKyAgICAgICAgICBwcmV2IHdpbGwgYmUgbnVsbCwgYW5kIHdlIGRvbid0IHJlYWxseSBleHBs
aWNpdGx5IGhhbmRsZSBpdCAobGlrZSB3ZSBwcm9iYWJseSBzaG91bGQpCisgICAgICAgICAgSXQn
cyBPSyB0aG91Z2gsIGJlY2F1c2Ugd2UgZW5kIHVwIGNyZWF0aW5nIGEgbnVsbCBwb3NpdGlvbiBv
YmplY3QsIHdoaWNoIG1heSBub3QgaGF2ZQorICAgICAgICAgIGJlZW4gd2hhdCB3ZSBpbnRlbmRl
ZCwgYnV0IHdlIGNlcnRhaW5seSBkb24ndCBjcmFzaC4KKyAgICAgICAgKiBlZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSk6CisgICAgICAgICAgUmVtb3ZlIGRl
YWQgY29kZSwgaW5zZXJ0aW9uUG9zaXRpb24ubm9kZSgpIGlzIGFscmVhZHkgY2hlY2tlZCB0byBi
ZSBub24tbnVsbCBhYm92ZS4KKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjphcHBlbmRTdGFydE1hcmt1cCk6CisgICAgICAgICAgcmVtb3ZlZCBkZWFkIGNv
ZGUsIGFubm90YXRlIGlzIGFscmVhZHkga25vd24gdG8gYmUgdHJ1ZSBhdCB0aGlzIHBvaW50IGlu
IHRoZSBmaWxlCisgICAgICAgICAgIWFubm90YXRlIHdhcyBjaGVja2VkIGFib3ZlLCBhbmQgYnJl
YWs7IHdhcyBjYWxsZWQuCisgICAgICAgICogaHRtbC9DYW52YXNTdHlsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUpOgorICAgICAgICAgIENvdmVydHkg
d2FzIGFubm95ZWQgdGhhdCB3ZSBkaWRuJ3QgaW5pdGlhbGl6ZSBhbGwgb2Ygb3VyIG1lbWJlcnMu
ICBJIGFncmVlLCBidXQgSSBkaWRuJ3QKKyAgICAgICAgICB3YW50IHRvIHBhc3RlIGFsbCA4IG1l
bWJlcnMgZWFjaCB0aW1lLCBzbyBJIGp1c3QgY2xlYW5lZCB1cCB0aGUgZXhpc3RpbmcgY29uc3Ry
dWN0b3JzIGFuZCBsZWZ0IHRoZW0uCisgICAgICAgICogbG9hZGVyL1RleHREb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0VG9rZW5pemVyOjpUZXh0VG9rZW5pemVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUb2tlbml6ZXI6On5UZXh0VG9rZW5pemVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRUb2tlbml6ZXI6OmZpbmlzaCk6CisgICAgICAgICAgTWFrZSBpdCBjbGVhciBi
eSBhZGRpbmcgYSB+VGV4dFRva2VuaXplciB0aGF0IGZpbmlzaCgpIHdpbGwgYWx3YXlzIGJlIGNh
bGxlZCBhbmQgdGhlIG1lbW9yeSBuZXZlciBsZWFrZWQuCisgICAgICAgICogcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpzZXRGb2N1
c2VkTm9kZSk6CisgICAgICAgICAgIm5vZGUiIHdhcyBjaGVja2VkIGp1c3QgYWJvdmUgYW5kIGlz
IGFscmVhZHkga25vd24gdG8gYmUgbm9uLW51bGwKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmg6CisgICAgICAgICAgRml4IGFuaW1hdGUoKSBzaWduYXR1cmVzIHRvIG1h
dGNoIHNvIHRoYXQgdGhlIHZpcnR1YWwgbWV0aG9kcyBhY3R1YWxseSBvdmVycmlkZSBvbmUgYW5v
dGhlci4gOikKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpyZW1vdmVG
cm9tU3RhcnRUaW1lUmVzcG9uc2VXYWl0TGlzdCk6CisgICAgICAgICAgQXR0ZW1wdCB0byBmaXgg
dGhpcyBtZXRob2QsIHByZXZBbmltYXRpb24gd2FzIG5ldmVyIHNldCB0byBhbnl0aGluZyBidXQg
TlVMTCwKKyAgICAgICAgICBhcyBmYXIgYXMgSSBjYW4gdGVsbCB0aGUgYXV0aG9yIG9yaWdpbmFs
bHkgaW50ZW5kZWQgdG8gdXBkYXRlIGl0IGF0IHRoZSBlbmQKKyAgICAgICAgICBvZiB0aGUgbG9v
cCwgd2hpY2ggaXMgd2hhdCBJIGNoYW5nZWQgdGhpcyBjb2RlIHRvIGRvLgorICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
cGxpY2l0QW5pbWF0aW9uOjphbmltYXRlKToKKyAgICAgICAgICBNYWtlIG1ldGhvZCBzaWduYXR1
cmUgbWF0Y2ggQW5pbWF0aW9uQmFzZTo6YW5pbWF0ZQorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9u
L0ltcGxpY2l0QW5pbWF0aW9uLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVB
bmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVBbmltYXRpb246OmFuaW1h
dGUpOgorICAgICAgICAgIE1ha2UgbWV0aG9kIHNpZ25hdHVyZSBtYXRjaCBBbmltYXRpb25CYXNl
OjphbmltYXRlCisgICAgICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVJbWFnZSk6CisgICAgICAgICAgTW92ZSBB
U1NFUlRzIHRvIHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uLCBjb2RlIHdhcyB1c2luZyAibm9kZSIg
YmVmb3JlIEFTU0VSVChub2RlKSwgb25jZSBJIG1vdmVkCisgICAgICAgICAgQVNTRVJUKG5vZGUp
IHRvIHRoZSB0b3Agb2YgdGhlIGZ1bmN0aW9uIGl0IG1hZGUgc2Vuc2UgdG8gbW92ZSB0aGUgcmVz
dCBvZiB0aGVtIHRoZXJlIHRvby4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBh
Z2VUcmVlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFBhZ2VUcmVlTm9kZTo6aW5p
dGlhbGl6ZVBhZ2UpOgorICAgICAgICAgIENvdmVydHkgYmVsaWV2ZXMgd2UgY2FuIGNyYXNoIGhl
cmUgZHVlIHRvIGogYmVpbmcgbGFyZ2VyIHRoYW4gR2x5cGhQYWdlOjpzaXplLiAgSSB0aGluayB0
byBpcyBhbHJlYWR5CisgICAgICAgICAga25vd24gdG8gYmUgPCBHbHlwaFBhZ2U6OnNpemUgZHVl
IHRvIHRoZSBtaW4oKSBzdGF0ZW1lbnQgYWJvdmUsIGJ1dCBub3QgYmVpbmcgc3VyZSBJIGFkZGVk
IGFuIEFTU0VSVC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNw
ZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcnNwZWN0
aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZCk6CisgICAgICAgICAgaWYgKGJsZW5kVG9JZGVu
dGl0eSkgYWxyZWFkeSByZXR1cm5lZCBhYm92ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgICBpZiAoYmxl
bmRUb0lkZW50aXR5KSBhbHJlYWR5IHJldHVybmVkIGFib3ZlLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aW5zZXJ0
T25seVRoaXNMYXllcik6CisgICAgICAgICAgV2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHBhcmVudExh
eWVyIHcvbyBhIE5VTEwgY2hlY2sgYWJvdmUsIHNvIGp1c3QgYWRkIGFuIGV4cGxpY2l0IEFTU0VS
VCBhbmQgdXNlIGl0IHcvbyBOVUxMIGNoZWNrCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cmVzaXplKToKKyAgICAgICAgICBlbGVtZW50IGlzIGFscmVhZHkgQVNTRVJUZWQgYWJvdmUs
IG5vIG5lZWQgdG8gbnVsbCBjaGVjayBpdCBoZXJlCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246
OmFkZENlbGwpOgorICAgICAgICAgIGN1cnJlbnRDZWxsLmNlbGwgd2FzIGp1c3QgYXNzaWduZWQg
dG8gdGhlIHZhbHVlICJjZWxsIiB3aGljaCBpcyBrbm93biB0byBiZSBub24tbnVsbCwgbm8gbmVl
ZCB0byBudWxsIGNoZWNrIGFnYWluLgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBw
b3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQpOgor
ICAgICAgICAgIG1vdmUgQVNTRVJUKG9iamVjdCkgdG8gKmJlZm9yZSogd2UgdXNlICJvYmplY3Qi
IDopCisgICAgICAgICogcmVuZGVyaW5nL2JpZGkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKToKKyAgICAgICAgICBsQnJlYWsub2JqIGNhbiBi
ZSBudWxsLCBzbyB3ZSBjYW4ndCBjYWxsIC0+aXNCUigpIG9uIGl0IHVuY29uZGl0aW9uYWxseS4K
KwogMjAwOS0wMy0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
Q1NTRm9udFNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKaW5k
ZXggNTAwNWMzOS4uNGI5MDc1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC00MzMsNyAr
NDMzLDkgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVGb250RmFjZXMoQ1NTRm9udEZhY2Uq
IGZpcnN0LCBDU1NGb250RmFjZSogc2Vjb25kKQogICAgIC8vIG9yIHRoZSBuZXh0IGRhcmtlciBv
dGhlcndpc2UuIgogICAgIC8vIEZvciAnNDAwJywgd2UgbWFkZSB1cCBvdXIgb3duIHJ1bGUgKHdo
aWNoIHRoZW4gJzUwMCcgZm9sbG93cykuCiAKLSAgICBzdGF0aWMgY29uc3QgRm9udFRyYWl0c01h
c2sgd2VpZ2h0RmFsbGJhY2tSdWxlc1s5XVs4XSA9IHsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgZmFsbGJhY2tSdWxlU2V0cyA9IDk7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHJ1bGVz
UGVyU2V0ID0gODsKKyAgICBzdGF0aWMgY29uc3QgRm9udFRyYWl0c01hc2sgd2VpZ2h0RmFsbGJh
Y2tSdWxlU2V0c1tmYWxsYmFja1J1bGVTZXRzXVtydWxlc1BlclNldF0gPSB7CiAgICAgICAgIHsg
Rm9udFdlaWdodDIwME1hc2ssIEZvbnRXZWlnaHQzMDBNYXNrLCBGb250V2VpZ2h0NDAwTWFzaywg
Rm9udFdlaWdodDUwME1hc2ssIEZvbnRXZWlnaHQ2MDBNYXNrLCBGb250V2VpZ2h0NzAwTWFzaywg
Rm9udFdlaWdodDgwME1hc2ssIEZvbnRXZWlnaHQ5MDBNYXNrIH0sCiAgICAgICAgIHsgRm9udFdl
aWdodDEwME1hc2ssIEZvbnRXZWlnaHQzMDBNYXNrLCBGb250V2VpZ2h0NDAwTWFzaywgRm9udFdl
aWdodDUwME1hc2ssIEZvbnRXZWlnaHQ2MDBNYXNrLCBGb250V2VpZ2h0NzAwTWFzaywgRm9udFdl
aWdodDgwME1hc2ssIEZvbnRXZWlnaHQ5MDBNYXNrIH0sCiAgICAgICAgIHsgRm9udFdlaWdodDIw
ME1hc2ssIEZvbnRXZWlnaHQxMDBNYXNrLCBGb250V2VpZ2h0NDAwTWFzaywgRm9udFdlaWdodDUw
ME1hc2ssIEZvbnRXZWlnaHQ2MDBNYXNrLCBGb250V2VpZ2h0NzAwTWFzaywgRm9udFdlaWdodDgw
ME1hc2ssIEZvbnRXZWlnaHQ5MDBNYXNrIH0sCkBAIC00NDUsMTQgKzQ0NywxNiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgY29tcGFyZUZvbnRGYWNlcyhDU1NGb250RmFjZSogZmlyc3QsIENTU0ZvbnRG
YWNlKiBzZWNvbmQpCiAgICAgICAgIHsgRm9udFdlaWdodDgwME1hc2ssIEZvbnRXZWlnaHQ3MDBN
YXNrLCBGb250V2VpZ2h0NjAwTWFzaywgRm9udFdlaWdodDUwME1hc2ssIEZvbnRXZWlnaHQ0MDBN
YXNrLCBGb250V2VpZ2h0MzAwTWFzaywgRm9udFdlaWdodDIwME1hc2ssIEZvbnRXZWlnaHQxMDBN
YXNrIH0KICAgICB9OwogCi0gICAgY29uc3QgRm9udFRyYWl0c01hc2sqIHdlaWdodEZhbGxiYWNr
UnVsZSA9IHdlaWdodEZhbGxiYWNrUnVsZXNbMF07CisgICAgdW5zaWduZWQgcnVsZVNldEluZGV4
ID0gMDsKICAgICB1bnNpZ25lZCB3ID0gRm9udFdlaWdodDEwMEJpdDsKICAgICB3aGlsZSAoIShk
ZXNpcmVkVHJhaXRzTWFza0ZvckNvbXBhcmlzb24gJiAoMSA8PCB3KSkpIHsKICAgICAgICAgdysr
OwotICAgICAgICB3ZWlnaHRGYWxsYmFja1J1bGUgKz0gODsKKyAgICAgICAgcnVsZVNldEluZGV4
Kys7CiAgICAgfQogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDg7ICsraSkgeworICAg
IEFTU0VSVChydWxlU2V0SW5kZXggPCBmYWxsYmFja1J1bGVTZXRzKTsKKyAgICBjb25zdCBGb250
VHJhaXRzTWFzayogd2VpZ2h0RmFsbGJhY2tSdWxlID0gd2VpZ2h0RmFsbGJhY2tSdWxlU2V0c1ty
dWxlU2V0SW5kZXhdOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBydWxlc1BlclNldDsg
KytpKSB7CiAgICAgICAgIGlmIChzZWNvbmRUcmFpdHNNYXNrICYgd2VpZ2h0RmFsbGJhY2tSdWxl
W2ldKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoZmlyc3RUcmFpdHNN
YXNrICYgd2VpZ2h0RmFsbGJhY2tSdWxlW2ldKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCBiNzViMTQyLi4yZjZlM2UxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNDM0MCw2
ICs0MzQwLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwg
Q1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgICAgIG1fZm9udERpcnR5ID0gdHJ1ZTsKICAg
ICAgICAgfSBlbHNlIGlmIChpc0luaXRpYWwpIHsKICAgICAgICAgICAgIFNldHRpbmdzKiBzZXR0
aW5ncyA9IG1fY2hlY2tlci5tX2RvY3VtZW50LT5zZXR0aW5ncygpOworICAgICAgICAgICAgQVNT
RVJUKHNldHRpbmdzKTsgLy8gSWYgd2UncmUgZG9pbmcgc3R5bGUgcmVzb2x1dGlvbiwgdGhpcyBk
b2N1bWVudCBzaG91bGQgYWx3YXlzIGJlIGluIGEgZnJhbWUgYW5kIHRodXMgaGF2ZSBzZXR0aW5n
cworICAgICAgICAgICAgaWYgKCFzZXR0aW5ncykKKyAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwogICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpTdGFuZGFy
ZEZhbWlseSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShz
ZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CkBAIC00MzY2LDYgKzQzNjksOSBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUp
CiAgICAgICAgICAgICBpZiAoZm9udERlc2NyaXB0aW9uLmlzQWJzb2x1dGVTaXplKCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHJlbmRlcmluZyBtb2RlIGFuZCBwcmludGVy
IGZvbnQgc2V0dGluZ3MgYXJlIHVwZGF0ZWQuCiAgICAgICAgICAgICAgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gbV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKHNldHRpbmdzKTsgLy8gSWYgd2UncmUgZG9pbmcgc3R5bGUgcmVzb2x1dGlvbiwg
dGhpcyBkb2N1bWVudCBzaG91bGQgYWx3YXlzIGJlIGluIGEgZnJhbWUgYW5kIHRodXMgaGF2ZSBz
ZXR0aW5ncworICAgICAgICAgICAgICAgIGlmICghc2V0dGluZ3MpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5n
TW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgICAgICAgICAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KG1fY2hlY2tlci5tX2RvY3VtZW50LT5wcmlu
dGluZygpKTsKICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNo
ZWV0LmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDgwMWZlMWIuLjNl
Mjc4OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0xOTQsMTQgKzE5NCwxMyBAQCB2b2lkIENT
U1N0eWxlU2hlZXQ6OnN0eWxlU2hlZXRDaGFuZ2VkKCkKICAgICBTdHlsZUJhc2UqIHJvb3QgPSB0
aGlzOwogICAgIHdoaWxlIChTdHlsZUJhc2UqIHBhcmVudCA9IHJvb3QtPnBhcmVudCgpKQogICAg
ICAgICByb290ID0gcGFyZW50OwotICAgIERvY3VtZW50KiBkb2N1bWVudFRvVXBkYXRlID0gKHJv
b3QgJiYgcm9vdC0+aXNDU1NTdHlsZVNoZWV0KCkpID8gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KHJvb3QpLT5kb2MoKSA6IDA7Ci0gICAgCisKICAgICAvKiBGSVhNRTogV2UgZG9uJ3QgbmVl
ZCB0byBkbyBldmVyeXRoaW5nIHVwZGF0ZVN0eWxlU2VsZWN0b3IgZG9lcywKICAgICAgKiBiYXNp
Y2FsbHkgd2UganVzdCBuZWVkIHRvIHJlY3JlYXRlIHRoZSBkb2N1bWVudCdzIHNlbGVjdG9yIHdp
dGggdGhlCiAgICAgICogYWxyZWFkeSBleGlzdGluZyBzdHlsZSBzaGVldHMuCiAgICAgICovCi0g
ICAgaWYgKGRvY3VtZW50VG9VcGRhdGUpCi0gICAgICAgIGRvY3VtZW50VG9VcGRhdGUtPnVwZGF0
ZVN0eWxlU2VsZWN0b3IoKTsKKyAgICBpZiAocm9vdC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAg
ICAgIHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihyb290KS0+ZG9jKCktPnVwZGF0ZVN0eWxl
U2VsZWN0b3IoKTsKIH0KIAogS1VSTCBDU1NTdHlsZVNoZWV0Ojpjb21wbGV0ZVVSTChjb25zdCBT
dHJpbmcmIHVybCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwIGIvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMzRk
OTgxYy4uZDMyNmRkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU5LDI1
ICs1OSw2IEBAIEhBTkRMRV9JTkhFUklUKHByb3AsIFByb3ApIFwKIGVsc2UgaWYgKGlzSW5pdGlh
bCkgXAogICAgIHN2Z3N0eWxlLT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwjI1By
b3AoKSk7CiAKLSNkZWZpbmUgSEFORExFX0lOSEVSSVRfQ09ORChwcm9wSUQsIHByb3AsIFByb3Ap
IFwKLWlmIChpZCA9PSBwcm9wSUQpIFwKLXtcCi0gICAgc3Znc3R5bGUtPnNldCMjUHJvcChtX3Bh
cmVudFN0eWxlLT5zdmdTdHlsZSgpLT5wcm9wKCkpO1wKLSAgICByZXR1cm47XAotfQotCi0jZGVm
aW5lIEhBTkRMRV9JTklUSUFMX0NPTkQocHJvcElELCBQcm9wKSBcCi1pZiAoaWQgPT0gcHJvcElE
KSBcCi17XAotICAgIHN2Z3N0eWxlLT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwj
I1Byb3AoKSk7XAotICAgIHJldHVybjtcCi19Ci0KLSNkZWZpbmUgSEFORExFX0lOSVRJQUxfQ09O
RF9XSVRIX1ZBTFVFKHByb3BJRCwgUHJvcCwgVmFsdWUpIFwKLWlmIChpZCA9PSBwcm9wSUQpIHsg
XAotICAgIHN2Z3N0eWxlLT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwjI1ZhbHVl
KCkpOyBcCi0gICAgcmV0dXJuOyBcCi19CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTEx
LDggKzkyLDIxIEBAIHN0YXRpYyBpbnQgYW5nbGVUb0dseXBoT3JpZW50YXRpb24oZmxvYXQgYW5n
bGUpCiAgICAgcmV0dXJuIC0xOwogfQogCitzdGF0aWMgQ29sb3IgY29sb3JGcm9tU1ZHQ29sb3JD
U1NWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBBU1NF
UlQodmFsdWUtPmlzU1ZHQ29sb3IoKSk7CisgICAgU1ZHQ29sb3IqIGMgPSBzdGF0aWNfY2FzdDxT
VkdDb2xvcio+KHZhbHVlKTsKKyAgICBDb2xvciBjb2xvcjsKKyAgICBpZiAoYy0+Y29sb3JUeXBl
KCkgPT0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQorICAgICAgICBjb2xv
ciA9IHN0eWxlLT5jb2xvcigpOworICAgIGVsc2UKKyAgICAgICAgY29sb3IgPSBjLT5jb2xvcigp
OworICAgIHJldHVybiBjb2xvcjsKK30KKwogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogeworICAgIEFTU0VSVCh2YWx1ZSk7
CiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gMDsKICAgICBpZiAodmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKQEAgLTE2OCwxNSArMTYyLDcgQEAgdm9p
ZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZh
bHVlKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlLZXJuaW5nOgogICAgICAg
ICB7Ci0gICAgICAgICAgICBpZiAoaXNJbmhlcml0KSB7Ci0gICAgICAgICAgICAgICAgSEFORExF
X0lOSEVSSVRfQ09ORChDU1NQcm9wZXJ0eUtlcm5pbmcsIGtlcm5pbmcsIEtlcm5pbmcpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAo
aXNJbml0aWFsKSB7Ci0gICAgICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZB
TFVFKENTU1Byb3BlcnR5S2VybmluZywgS2VybmluZywgS2VybmluZykKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FO
RF9JTklUSUFMKGtlcm5pbmcsIEtlcm5pbmcpOwogICAgICAgICAgICAgc3Znc3R5bGUtPnNldEtl
cm5pbmcocHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTI1NCw1MiArMjQwLDM3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0
eShpbnQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6
CiAgICAgICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGZpbGxQ
YWludCwgRmlsbFBhaW50KQotICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSAmJiB2YWx1
ZSkgewotICAgICAgICAgICAgICAgIFNWR1BhaW50ICpwYWludCA9IHN0YXRpY19jYXN0PFNWR1Bh
aW50Kj4odmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChwYWludCkKLSAgICAgICAgICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldEZpbGxQYWludChwYWludCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgICAgICAg
ICAgICAgIHN2Z3N0eWxlLT5zZXRGaWxsUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1
ZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVN0cm9rZToKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwoc3Ryb2tlUGFpbnQsIFN0cm9rZVBhaW50KQotICAgICAgICAgICAgaWYgKCFwcmltaXRp
dmVWYWx1ZSAmJiB2YWx1ZSkgewotICAgICAgICAgICAgICAgIFNWR1BhaW50ICpwYWludCA9IHN0
YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChwYWludCkK
LSAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVBhaW50KHBhaW50KTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgICAg
ICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VQYWludChzdGF0aWNfY2FzdDxTVkdQYWludCo+
KHZhbHVlKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VXaWR0aDoKICAgICAgICAgewogICAgICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tlV2lkdGgsIFN0cm9rZVdpZHRoKQot
ICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIAotICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVdpZHRoKHByaW1pdGl2
ZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAgICAgICAg
ICBzdmdzdHlsZS0+c2V0U3Ryb2tlV2lkdGgocHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZURhc2hhcnJh
eToKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ry
b2tlRGFzaEFycmF5LCBTdHJva2VEYXNoQXJyYXkpCi0gICAgICAgICAgICBpZiAoIXByaW1pdGl2
ZVZhbHVlICYmIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBkYXNoZXMg
PSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGRhc2hlcykKLSAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZURhc2hBcnJh
eShkYXNoZXMpOwotICAgICAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgICAgIGlmICh2YWx1
ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlRGFz
aEFycmF5KHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlRGFzaG9mZnNl
dDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ry
b2tlRGFzaE9mZnNldCwgU3Ryb2tlRGFzaE9mZnNldCkKLSAgICAgICAgICAgIGlmICghcHJpbWl0
aXZlVmFsdWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBzdmdzdHls
ZS0+c2V0U3Ryb2tlRGFzaE9mZnNldChwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUpCisgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZURhc2hP
ZmZzZXQocHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGxPcGFjaXR5OgpAQCAtNDkxLDM1ICs0NjIsMTMgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUq
IHZhbHVlKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3RvcENvbG9yOgogICAgICAgICB7CiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdG9wQ29sb3IsIFN0b3BDb2xv
cik7Ci0KLSAgICAgICAgICAgIFNWR0NvbG9yKiBjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2
YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoIWMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKLQotICAgICAgICAgICAgQ29s
b3IgY29sOwotICAgICAgICAgICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR0NvbG9yOjpTVkdf
Q09MT1JUWVBFX0NVUlJFTlRDT0xPUikKLSAgICAgICAgICAgICAgICBjb2wgPSBtX3N0eWxlLT5j
b2xvcigpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9y
KCk7Ci0KLSAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdG9wQ29sb3IoY29sKTsKKyAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXRTdG9wQ29sb3IoY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZSh2YWx1
ZSwgbV9zdHlsZS5nZXQoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5TGlnaHRpbmdDb2xvcjoKICAgICAgICAgewogICAgICAgICAgICAg
SEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobGlnaHRpbmdDb2xvciwgTGlnaHRpbmdDb2xvcik7
Ci0KLSAgICAgICAgICAgIFNWR0NvbG9yKiBjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1
ZSk7Ci0gICAgICAgICAgICBpZiAoIWMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKLQotICAgICAgICAgICAgQ29sb3Ig
Y29sOwotICAgICAgICAgICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR0NvbG9yOjpTVkdfQ09M
T1JUWVBFX0NVUlJFTlRDT0xPUikKLSAgICAgICAgICAgICAgICBjb2wgPSBtX3N0eWxlLT5jb2xv
cigpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7
Ci0KLSAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRMaWdodGluZ0NvbG9yKGNvbCk7CisgICAgICAg
ICAgICBzdmdzdHlsZS0+c2V0TGlnaHRpbmdDb2xvcihjb2xvckZyb21TVkdDb2xvckNTU1ZhbHVl
KHZhbHVlLCBtX3N0eWxlLmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5Rmxvb2RPcGFjaXR5OgpAQCAtNTQyLDIxICs0OTEsMTEg
QEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFs
dWUqIHZhbHVlKQogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZENvbG9y
OgogICAgICAgICB7Ci0gICAgICAgICAgICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAoaXNJ
bml0aWFsKQotICAgICAgICAgICAgICAgIGNvbCA9IFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmxv
b2RDb2xvcigpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgU1ZHQ29sb3Ig
KmMgPSBzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAo
IWMpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVBy
b3BlcnR5KGlkLCB2YWx1ZSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYy0+Y29sb3JUeXBlKCkg
PT0gU1ZHQ29sb3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQotICAgICAgICAgICAgICAg
ICAgICBjb2wgPSBtX3N0eWxlLT5jb2xvcigpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgY29sID0gYy0+Y29sb3IoKTsKKyAgICAgICAgICAgIGlmIChpc0luaXRp
YWwpIHsKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Rmxvb2RDb2xvcihTVkdSZW5kZXJT
dHlsZTo6aW5pdGlhbEZsb29kQ29sb3IoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBzdmdzdHlsZS0+c2V0Rmxvb2RDb2xvcihjb2wpOwor
ICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZsb29kQ29sb3IoY29sb3JGcm9tU1ZHQ29sb3JDU1NW
YWx1ZSh2YWx1ZSwgbV9zdHlsZS5nZXQoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmNwcAppbmRleCAyNDlkMTIyLi45MWI2MzNmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcApAQCAtNjc5LDYgKzY3OSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0
Q29ybmVyKEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogICAgICAgICAgICAgaWYgKCFvKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIEFTU0VSVChvKTsKIAogICAg
ICAgICBpZiAoIW8tPmlzSW5saW5lKCkgfHwgby0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgICAg
ICBwb2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZSgpOwpAQCAtNzE1LDkgKzcxNiw4IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6Z2V0TG93ZXJSaWdodENvcm5lcihGbG9hdFBvaW50JiBwb2ludCkgY29u
c3QKICAgICBpZiAoIXJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJl
bmRlck9iamVjdCAqbyA9IHJlbmRlcmVyKCk7Ci0gICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8t
PmlzUmVwbGFjZWQoKSkKLSAgICB7CisgICAgUmVuZGVyT2JqZWN0KiBvID0gcmVuZGVyZXIoKTsK
KyAgICBpZiAoIW8tPmlzSW5saW5lKCkgfHwgby0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJl
bmRlckJveCogYm94ID0gdG9SZW5kZXJCb3gobyk7CiAgICAgICAgIHBvaW50ID0gby0+bG9jYWxU
b0Fic29sdXRlKCk7CiAgICAgICAgIHBvaW50Lm1vdmUoYm94LT53aWR0aCgpLCBib3gtPmhlaWdo
dCgpKTsKQEAgLTczMSw4ICs3MzEsOCBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExvd2VyUmln
aHRDb3JuZXIoRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0CiAgICAgICAgIGVsc2UgaWYgKG8tPnBy
ZXZpb3VzU2libGluZygpKQogICAgICAgICAgICAgbyA9IG8tPnByZXZpb3VzU2libGluZygpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFJlbmRlck9iamVjdCAqcHJldiA9IDA7Ci0gICAg
ICAgICAgICB3aGlsZSghcHJldikgeworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBwcmV2ID0g
MDsKKyAgICAgICAgICAgIHdoaWxlICghcHJldikgewogICAgICAgICAgICAgICAgIG8gPSBvLT5w
YXJlbnQoKTsKICAgICAgICAgICAgICAgICBpZiAoIW8pCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTc0MCw2ICs3NDAsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExv
d2VyUmlnaHRDb3JuZXIoRmxvYXRQb2ludCYgcG9pbnQpIGNvbnN0CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBvID0gcHJldjsKICAgICAgICAgfQorICAgICAgICBBU1NFUlQobyk7CiAgICAg
ICAgIGlmIChvLT5pc1RleHQoKSB8fCBvLT5pc1JlcGxhY2VkKCkpIHsKICAgICAgICAgICAgIHBv
aW50ID0gby0+Y29udGFpbmVyKCktPmxvY2FsVG9BYnNvbHV0ZSgpOwogICAgICAgICAgICAgaWYg
KG8tPmlzVGV4dCgpKSB7CkBAIC03NjQsOCArNzY1LDcgQEAgSW50UmVjdCBDb250YWluZXJOb2Rl
OjpnZXRSZWN0KCkgY29uc3QKICAgICAKICAgICAvLyBJZiB3ZSd2ZSBmb3VuZCBvbmUgY29ybmVy
LCBidXQgbm90IHRoZSBvdGhlciwKICAgICAvLyB0aGVuIHdlIHNob3VsZCBqdXN0IHJldHVybiBh
IHBvaW50IGF0IHRoZSBjb3JuZXIgdGhhdCB3ZSBkaWQgZmluZC4KLSAgICBpZiAoZm91bmRVcHBl
ckxlZnQgIT0gZm91bmRMb3dlclJpZ2h0KQotICAgIHsKKyAgICBpZiAoZm91bmRVcHBlckxlZnQg
IT0gZm91bmRMb3dlclJpZ2h0KSB7CiAgICAgICAgIGlmIChmb3VuZFVwcGVyTGVmdCkKICAgICAg
ICAgICAgIGxvd2VyUmlnaHQgPSB1cHBlckxlZnQ7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBkYjA5NWVjLi45MGY3MWRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTM1LDggKzExMzUsNiBAQCB2b2lk
IERvY3VtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgIFN0eWxl
Q2hhbmdlIGNoID0gZGlmZihkb2N1bWVudFN0eWxlLmdldCgpLCByZW5kZXJlcigpLT5zdHlsZSgp
KTsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgY2ggIT0gTm9DaGFuZ2UpCiAgICAgICAgICAg
ICByZW5kZXJlcigpLT5zZXRTdHlsZShkb2N1bWVudFN0eWxlLnJlbGVhc2UoKSk7Ci0gICAgICAg
IGlmIChjaGFuZ2UgIT0gRm9yY2UpCi0gICAgICAgICAgICBjaGFuZ2UgPSBjaDsKICAgICB9CiAK
ICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygp
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggZWIzMTI1NC4uZDQzY2M4
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysg
Yi9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0xMjE5LDEzICsxMjE5
LDEzIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUlubGluZVN0eWxlKFBhc3NSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+CiAgICAgUG9zaXRpb24gcyA9IHN0YXJ0Owog
ICAgIFBvc2l0aW9uIGUgPSBlbmQ7CiAKLSAgICBOb2RlICpub2RlID0gc3RhcnQubm9kZSgpOwor
ICAgIE5vZGUqIG5vZGUgPSBzdGFydC5ub2RlKCk7CiAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAg
ICAgTm9kZSAqbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKTsKKyAgICAgICAgTm9kZSog
bmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKTsKICAgICAgICAgaWYgKG5vZGUtPmlzSFRN
TEVsZW1lbnQoKSAmJiBub2RlRnVsbHlTZWxlY3RlZChub2RlLCBzdGFydCwgZW5kKSkgewotICAg
ICAgICAgICAgSFRNTEVsZW1lbnQgKmVsZW0gPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCAqPihu
b2RlKTsKLSAgICAgICAgICAgIE5vZGUgKnByZXYgPSBlbGVtLT50cmF2ZXJzZVByZXZpb3VzTm9k
ZVBvc3RPcmRlcigpOwotICAgICAgICAgICAgTm9kZSAqbmV4dCA9IGVsZW0tPnRyYXZlcnNlTmV4
dE5vZGUoKTsKKyAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtID0gc3RhdGljX2Nhc3Q8SFRN
TEVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgICAgIE5vZGUqIHByZXYgPSBlbGVtLT50cmF2ZXJz
ZVByZXZpb3VzTm9kZVBvc3RPcmRlcigpOworICAgICAgICAgICAgTm9kZSogbmV4dCA9IGVsZW0t
PnRyYXZlcnNlTmV4dE5vZGUoKTsKICAgICAgICAgICAgIGlmIChtX3N0eWxlZElubGluZUVsZW1l
bnQgJiYgZWxlbS0+aGFzVGFnTmFtZShtX3N0eWxlZElubGluZUVsZW1lbnQtPnRhZ1FOYW1lKCkp
KQogICAgICAgICAgICAgICAgIHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbSk7CiAg
ICAgICAgICAgICBpZiAoaXNIVE1MU3R5bGVOb2RlKHN0eWxlLmdldCgpLCBlbGVtKSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNw
cCBiL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApp
bmRleCBlZWI5MTRhLi4xNmQ0MjQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KCkKICAgICAKICAgICAvLyBT
cGxpdCBhdCBwb3MgaWYgaW4gdGhlIG1pZGRsZSBvZiBhIHRleHQgbm9kZS4KICAgICBpZiAoaW5z
ZXJ0aW9uUG9zaXRpb24ubm9kZSgpLT5pc1RleHROb2RlKCkpIHsKLSAgICAgICAgVGV4dCAqdGV4
dE5vZGUgPSBzdGF0aWNfY2FzdDxUZXh0ICo+KGluc2VydGlvblBvc2l0aW9uLm5vZGUoKSk7Cisg
ICAgICAgIFRleHQqIHRleHROb2RlID0gc3RhdGljX2Nhc3Q8VGV4dCo+KGluc2VydGlvblBvc2l0
aW9uLm5vZGUoKSk7CiAgICAgICAgIGJvb2wgYXRFbmQgPSAodW5zaWduZWQpaW5zZXJ0aW9uUG9z
aXRpb24ubV9vZmZzZXQgPj0gdGV4dE5vZGUtPmxlbmd0aCgpOwogICAgICAgICBpZiAoaW5zZXJ0
aW9uUG9zaXRpb24ubV9vZmZzZXQgPiAwICYmICFhdEVuZCkgewogICAgICAgICAgICAgc3BsaXRU
ZXh0Tm9kZSh0ZXh0Tm9kZSwgaW5zZXJ0aW9uUG9zaXRpb24ubV9vZmZzZXQpOwpAQCAtMzIzLDcg
KzMyMyw2IEBAIHZvaWQgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgp
CiAgICAgICAgIGluc2VydGlvblBvc2l0aW9uID0gUG9zaXRpb24oaW5zZXJ0aW9uUG9zaXRpb24u
bm9kZSgpLCAwKTsKICAgICAgICAgaWYgKCFpbnNlcnRpb25Qb3NpdGlvbi5pc1JlbmRlcmVkQ2hh
cmFjdGVyKCkpIHsKICAgICAgICAgICAgIC8vIENsZWFyIG91dCBhbGwgd2hpdGVzcGFjZSBhbmQg
aW5zZXJ0IG9uZSBub24tYnJlYWtpbmcgc3BhY2UKLSAgICAgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Qb3NpdGlvbi5ub2RlKCkpOwogICAgICAgICAgICAgQVNTRVJUKGluc2VydGlvblBvc2l0aW9u
Lm5vZGUoKS0+aXNUZXh0Tm9kZSgpKTsKICAgICAgICAgICAgIEFTU0VSVCghaW5zZXJ0aW9uUG9z
aXRpb24ubm9kZSgpLT5yZW5kZXJlcigpIHx8IGluc2VydGlvblBvc2l0aW9uLm5vZGUoKS0+cmVu
ZGVyZXIoKS0+c3R5bGUoKS0+Y29sbGFwc2VXaGl0ZVNwYWNlKCkpOwogICAgICAgICAgICAgZGVs
ZXRlSW5zaWduaWZpY2FudFRleHREb3duc3RyZWFtKGluc2VydGlvblBvc2l0aW9uKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKaW5kZXggN2M4NGU4Zi4uN2RlNTI4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTQwOCw4ICs0
MDgsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRTdGFydE1hcmt1cChWZWN0b3I8VUNoYXI+JiByZXN1
bHQsIGNvbnN0IE5vZGUgKm5vZGUsIGNvbnN0IFJhbgogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBib29sIHVzZVJlbmRlcmVkVGV4dCA9ICFlbmNsb3NpbmdOb2RlV2l0aFRhZyhQb3NpdGlvbihj
b25zdF9jYXN0PE5vZGUqPihub2RlKSwgMCksIHNlbGVjdFRhZyk7CiAgICAgICAgICAgICBTdHJp
bmcgbWFya3VwID0gZXNjYXBlQ29udGVudFRleHQodXNlUmVuZGVyZWRUZXh0ID8gcmVuZGVyZWRU
ZXh0KG5vZGUsIHJhbmdlKSA6IHN0cmluZ1ZhbHVlRm9yUmFuZ2Uobm9kZSwgcmFuZ2UpLCBmYWxz
ZSk7Ci0gICAgICAgICAgICBpZiAoYW5ub3RhdGUpCi0gICAgICAgICAgICAgICAgbWFya3VwID0g
Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChtYXJrdXAsIHN0YXRpY19jYXN0PGNv
bnN0IFRleHQqPihub2RlKSk7CisgICAgICAgICAgICBtYXJrdXAgPSBjb252ZXJ0SFRNTFRleHRU
b0ludGVyY2hhbmdlRm9ybWF0KG1hcmt1cCwgc3RhdGljX2Nhc3Q8Y29uc3QgVGV4dCo+KG5vZGUp
KTsKICAgICAgICAgICAgIGFwcGVuZChyZXN1bHQsIG1hcmt1cCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcCBi
L1dlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAKaW5kZXggZDMyN2JmOC4uZDg5YmI0NyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
Q2FudmFzU3R5bGUuY3BwCkBAIC03OCwxMiArNzgsMjEgQEAgQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKGZsb2F0IGdyYXlMZXZlbCwgZmxvYXQgYWxwaGEpCiB9CiAKIENhbnZhc1N0eWxlOjpDYW52
YXNTdHlsZShmbG9hdCByLCBmbG9hdCBnLCBmbG9hdCBiLCBmbG9hdCBhKQotICAgIDogbV90eXBl
KFJHQkEpLCBtX2FscGhhKGEpLCBtX3JlZChyKSwgbV9ncmVlbihnKSwgbV9ibHVlKGIpCisgICAg
OiBtX3R5cGUoUkdCQSkKKyAgICAsIG1fYWxwaGEoYSkKKyAgICAsIG1fcmVkKHIpCisgICAgLCBt
X2dyZWVuKGcpCisgICAgLCBtX2JsdWUoYikKIHsKIH0KIAogQ2FudmFzU3R5bGU6OkNhbnZhc1N0
eWxlKGZsb2F0IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi0gICAgOiBt
X3R5cGUoQ01ZS0EpLCBtX2FscGhhKGEpLCBtX2N5YW4oYyksIG1fbWFnZW50YShtKSwgbV95ZWxs
b3coeSksIG1fYmxhY2soaykKKyAgICA6IG1fdHlwZShDTVlLQSkKKyAgICAsIG1fYWxwaGEoYSkK
KyAgICAsIG1fY3lhbihjKQorICAgICwgbV9tYWdlbnRhKG0pCisgICAgLCBtX3llbGxvdyh5KQor
ICAgICwgbV9ibGFjayhrKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9UZXh0
RG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAppbmRleCAxZTdl
ZTNmLi4wZDg2YzFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIGNsYXNzIFRleHRUb2tlbml6ZXIgOiBwdWJsaWMg
VG9rZW5pemVyIHsKIHB1YmxpYzoKICAgICBUZXh0VG9rZW5pemVyKERvY3VtZW50Kik7CisgICAg
dmlydHVhbCB+VGV4dFRva2VuaXplcigpOwogICAgIFRleHRUb2tlbml6ZXIoSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYsIGJvb2wgYXBwZW5kRGF0YSk7CkBAIC05MSw3ICs5MiwxMyBAQCBUZXh0VG9rZW5pemVy
OjpUZXh0VG9rZW5pemVyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqIGRvYykKICAgICBtX3NpemUg
PSAyNTQ7CiAgICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcio+KGZhc3RNYWxsb2Moc2l6
ZW9mKFVDaGFyKSAqIG1fc2l6ZSkpOwogICAgIG1fZGVzdCA9IG1fYnVmZmVyOwotfSAgICAKK30K
KworVGV4dFRva2VuaXplcjo6flRleHRUb2tlbml6ZXIoKQoreworICAgIC8vIGZpbmlzaCgpIHNo
b3VsZCBoYXZlIGJlZW4gY2FsbGVkIHRvIHByZXZlbnQgYW55IGxlYWtzCisgICAgQVNTRVJUKCFt
X2J1ZmZlcik7Cit9CiAKIHZvaWQgVGV4dFRva2VuaXplcjo6d3JpdGUoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiBzLCBib29sKQogewpAQCAtMTU3LDcgKzE2NCw5IEBAIHZvaWQgVGV4dFRva2VuaXpl
cjo6ZmluaXNoKCkKIHsKICAgICBtX3ByZUVsZW1lbnQgPSAwOwogICAgIGZhc3RGcmVlKG1fYnVm
ZmVyKTsKLSAgICAgICAgCisgICAgbV9idWZmZXIgPSAwOworICAgIG1fZGVzdCA9IDA7CisKICAg
ICBtX2RvYy0+ZmluaXNoZWRQYXJzaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
aW5kZXggOGYwMDhhOC4uOTc2MGIzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTI2
MCw5ICsyNjAsOSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUoTm9kZSog
bm9kZSwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYQogICAgICAgICBtX3BhZ2UtPmVk
aXRvckNsaWVudCgpLT5zZXRJbnB1dE1ldGhvZFN0YXRlKGZhbHNlKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIAotICAgIFJlZlB0cjxEb2N1bWVudD4gbmV3RG9jdW1lbnQgPSBu
b2RlID8gbm9kZS0+ZG9jdW1lbnQoKSA6IDA7Ci0gICAgCisKKyAgICBSZWZQdHI8RG9jdW1lbnQ+
IG5ld0RvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKKwogICAgIGlmIChuZXdEb2N1bWVudCAm
JiBuZXdEb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKSB7CiAgICAgICAgIG1fcGFnZS0+
ZWRpdG9yQ2xpZW50KCktPnNldElucHV0TWV0aG9kU3RhdGUobm9kZS0+c2hvdWxkVXNlSW5wdXRN
ZXRob2QoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaAppbmRleCAwZGU2ZDdjLi5kYTQzNDFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuaApAQCAtMTI0LDkgKzEyNCw4IEBAIHB1YmxpYzoKIAogICAgIGRvdWJs
ZSBwcm9ncmVzcyhkb3VibGUgc2NhbGUsIGRvdWJsZSBvZmZzZXQsIGNvbnN0IFRpbWluZ0Z1bmN0
aW9uKikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShDb21wb3NpdGVBbmltYXRp
b24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSogLypjdXJyZW50U3R5bGUqLywg
Ci0gICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiAvKnRhcmdldFN0eWxlKi8sIFJlZlB0cjxSZW5k
ZXJTdHlsZT4mIC8qYW5pbWF0ZWRTdHlsZSovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QW5p
bWF0ZWRTdHlsZShSZWZQdHI8UmVuZGVyU3R5bGU+JiAvKmFuaW1hdGVkU3R5bGUqLykgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0
KiwgY29uc3QgUmVuZGVyU3R5bGUqIC8qY3VycmVudFN0eWxlKi8sIFJlbmRlclN0eWxlKiAvKnRh
cmdldFN0eWxlKi8sIFJlZlB0cjxSZW5kZXJTdHlsZT4mIC8qYW5pbWF0ZWRTdHlsZSovKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEFuaW1hdGVkU3R5bGUoUmVmUHRyPFJlbmRlclN0eWxlPiYg
LyphbmltYXRlZFN0eWxlKi8pID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGaXJlRXZl
bnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZGJkMmRiYy4uZjljOWE0NyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zOTYs
NiArMzk2LDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVtb3ZlRnJvbVN0
YXJ0VGltZVJlc3BvbnNlV2FpdExpc3QoQW5pbWF0aW9uQmEKICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGFuaW1hdGlvblRvUmVtb3ZlLT5zZXROZXh0KDApOwogICAgICAgICB9CisgICAg
ICAgIHByZXZBbmltYXRpb24gPSBhbmltYXRpb247CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDM4ZTZiZDEuLjhlYzBiZTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC02
Miw3ICs2Miw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNob3VsZFNlbmRFdmVudEZvckxp
c3RlbmVyKERvY3VtZW50OjpMaXN0ZW5lclR5cGUgaW5MaXN0CiAgICAgcmV0dXJuIG1fb2JqZWN0
LT5kb2N1bWVudCgpLT5oYXNMaXN0ZW5lclR5cGUoaW5MaXN0ZW5lclR5cGUpOwogfQogCi12b2lk
IEltcGxpY2l0QW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlck9i
amVjdCosIFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQdHI8UmVu
ZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQordm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6YW5pbWF0
ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSos
IFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRT
dHlsZSkKIHsKICAgICAvLyBJZiB3ZSBnZXQgdGhpcyBmYXIgYW5kIHRoZSBhbmltYXRpb24gaXMg
ZG9uZSwgaXQgbWVhbnMgd2UgYXJlIGNsZWFuaW5nIHVwIGEganVzdCBmaW5pc2hlZCBhbmltYXRp
b24uCiAgICAgLy8gU28ganVzdCByZXR1cm4uIEV2ZXJ5dGhpbmcgaXMgYWxyZWFkeSBhbGwgY2xl
YW5lZCB1cC4KQEAgLTE4NCw3ICsxODQsNiBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpyZXNl
dChSZW5kZXJTdHlsZSogdG8pCiB7CiAgICAgQVNTRVJUKHRvKTsKICAgICBBU1NFUlQobV9mcm9t
U3R5bGUpOwotICAgIAogCiAgICAgbV90b1N0eWxlID0gdG87CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaCBiL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vSW1wbGljaXRBbmltYXRpb24uaAppbmRleCA1MzNmYmNjLi4yMjFjNDVlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKKysrIGIvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCkBAIC00OSw4ICs0OSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRU
aW1lKTsKICAgICB2aXJ0dWFsIGJvb2wgc3RhcnRBbmltYXRpb24oZG91YmxlIGJlZ2luVGltZSk7
CiAgICAgdmlydHVhbCB2b2lkIGVuZEFuaW1hdGlvbihib29sIHJlc2V0KTsKLSAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgYW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBS
ZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUsIFJlZlB0
cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpOworCisgICAgdmlydHVhbCB2b2lkIGFuaW1h
dGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUq
IGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQdHI8UmVuZGVyU3R5
bGU+JiBhbmltYXRlZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QW5pbWF0ZWRTdHlsZShS
ZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQoUmVuZGVyU3R5bGUqIHRvKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1l
QW5pbWF0aW9uLmNwcAppbmRleCAwOTA0MzNiLi44OGE1ZjZhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtOTksNyArOTksNyBAQCB2b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjpnZXRLZXlmcmFtZUFuaW1hdGlvbkludGVydmFsKGNvbnN0IFJlbmRl
clN0eWxlKiYgZnJvbVN0eQogICAgIHByb2cgPSBwcm9ncmVzcyhzY2FsZSwgb2Zmc2V0LCB0aW1p
bmdGdW5jdGlvbik7CiB9CiAKLXZvaWQgS2V5ZnJhbWVBbmltYXRpb246OmFuaW1hdGUoQ29tcG9z
aXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBS
ZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUsIFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5
bGUpCit2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbios
IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHRhcmdldFN0
eWxlLCBSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQogewogICAgIC8vIEZpcmUg
dGhlIHN0YXJ0IHRpbWVvdXQgaWYgbmVlZGVkCiAgICAgZmlyZUFuaW1hdGlvbkV2ZW50c0lmTmVl
ZGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0
aW9uLmggYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKaW5kZXgg
MmExZTIxMy4uMTA5MGU1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uaApAQCAtNDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwgcmVuZGVyZXIsIGluZGV4
LCBjb21wb3NpdGVBbmltYXRpb24sIHVuYW5pbWF0ZWRTdHlsZSkpOwogICAgIH07Ci0gICAgCi0g
ICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0
KiwgY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHRh
cmdldFN0eWxlLCBSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKTsKKworICAgIHZp
cnR1YWwgdm9pZCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCosIGNv
bnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSwg
UmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIGdl
dEFuaW1hdGVkU3R5bGUoUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSk7CiAKICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lcy5h
bmltYXRpb25OYW1lKCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGFzdGVib2FyZENocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVi
b2FyZENocm9taXVtLmNwcAppbmRleCBlN2IyMjAzLi45YjMyYmFlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCkBAIC05OCw2ICs5OCwx
NSBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1h
Z2UoTm9kZSogbm9kZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CisgICAg
QVNTRVJUKG5vZGUpOworICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpKTsKKyAgICBBU1NFUlQo
bm9kZS0+cmVuZGVyZXIoKS0+aXNJbWFnZSgpKTsKKyAgICBSZW5kZXJJbWFnZSogcmVuZGVyZXIg
PSBzdGF0aWNfY2FzdDxSZW5kZXJJbWFnZSo+KG5vZGUtPnJlbmRlcmVyKCkpOworICAgIENhY2hl
ZEltYWdlKiBjYWNoZWRJbWFnZSA9IHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVuZGVyZXIt
PmNhY2hlZEltYWdlKCkpOworICAgIEFTU0VSVChjYWNoZWRJbWFnZSk7CisgICAgSW1hZ2UqIGlt
YWdlID0gY2FjaGVkSW1hZ2UtPmltYWdlKCk7CisgICAgQVNTRVJUKGltYWdlKTsKKwogICAgIC8v
IElmIHRoZSBpbWFnZSBpcyB3cmFwcGVkIGluIGEgbGluaywgfHVybHwgcG9pbnRzIHRvIHRoZSB0
YXJnZXQgb2YgdGhlCiAgICAgLy8gbGluay4gIFRoaXMgaXNuJ3QgdXNlZnVsIHRvIHVzLCBzbyBn
ZXQgdGhlIGFjdHVhbCBpbWFnZSBVUkwuCiAgICAgQXRvbWljU3RyaW5nIHVybFN0cmluZzsKQEAg
LTExMywxNiArMTIyLDYgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqIG5vZGUs
IGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIH0KICAgICBLVVJMIHVybCA9
IHVybFN0cmluZy5pc0VtcHR5KCkgPyBLVVJMKCkgOiBub2RlLT5kb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChwYXJzZVVSTCh1cmxTdHJpbmcpKTsKIAotICAgIEFTU0VSVChub2RlKTsKLSAgICBBU1NF
UlQobm9kZS0+cmVuZGVyZXIoKSk7Ci0gICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVyKCktPmlzSW1h
Z2UoKSk7Ci0KLSAgICBSZW5kZXJJbWFnZSogcmVuZGVyZXIgPSBzdGF0aWNfY2FzdDxSZW5kZXJJ
bWFnZSo+KG5vZGUtPnJlbmRlcmVyKCkpOwotICAgIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9
IHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4ocmVuZGVyZXItPmNhY2hlZEltYWdlKCkpOwotICAg
IEFTU0VSVChjYWNoZWRJbWFnZSk7Ci0gICAgSW1hZ2UqIGltYWdlID0gY2FjaGVkSW1hZ2UtPmlt
YWdlKCk7Ci0gICAgQVNTRVJUKGltYWdlKTsKLQogICAgIE5hdGl2ZUltYWdlU2tpYSogYml0bWFw
ID0gMDsKICNpZiAhUExBVEZPUk0oQ0cpCiAgICAgYml0bWFwID0gaW1hZ2UtPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dseXBoUGFnZVRyZWVOb2RlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQ
YWdlVHJlZU5vZGUuY3BwCmluZGV4IDZiOWQyM2QuLmJkODM4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwCkBAIC0yMTgsNiArMjE4LDcg
QEAgdm9pZCBHbHlwaFBhZ2VUcmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2UoY29uc3QgRm9udERhdGEq
IGZvbnREYXRhLCB1bnNpZ25lZCBwYWdlTnUKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgfD0gcGFnZVRvRmlsbC0+ZmlsbChmcm9t
LCB0byAtIGZyb20sIGJ1ZmZlciArIGZyb20gKiAoc3RhcnQgPCAweDEwMDAwID8gMSA6IDIpLCAo
dG8gLSBmcm9tKSAqIChzdGFydCA8IDB4MTAwMDAgPyAxIDogMiksIHJhbmdlLmZvbnREYXRhKCkp
OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcmF0Y2hQYWdlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKHRvIDw9ICBzdGF0aWNfY2FzdDxpbnQ+KEdseXBoUGFn
ZTo6c2l6ZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBmcm9t
OyBqIDwgdG87IGorKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1f
cGFnZS0+bV9nbHlwaHNbal0uZ2x5cGggJiYgcGFnZVRvRmlsbC0+bV9nbHlwaHNbal0uZ2x5cGgp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPm1fZ2x5cGhzW2pd
ID0gcGFnZVRvRmlsbC0+bV9nbHlwaHNbal07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3Jt
T3BlcmF0aW9uLmNwcAppbmRleCBhMjcxM2JhLi45ZmQwM2ExIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVj
dGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTQzLDEwICs0Myw3IEBAIFBhc3NSZWZQdHI8
VHJhbnNmb3JtT3BlcmF0aW9uPiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQo
Y29uc3QgVHJhbnNmCiAgICAgY29uc3QgUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24qIGZy
b21PcCA9IHN0YXRpY19jYXN0PGNvbnN0IFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uKj4o
ZnJvbSk7CiAgICAgZG91YmxlIGZyb21QID0gZnJvbU9wID8gZnJvbU9wLT5tX3AgOiAwOwogICAg
IGRvdWJsZSB0b1AgPSBtX3A7Ci0gICAgCi0gICAgaWYgKGJsZW5kVG9JZGVudGl0eSkKLSAgICAg
ICAgc3dhcChmcm9tUCwgdG9QKTsKLSAgICAKKwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGZy
b21UOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRvVDsKICAgICBmcm9tVC5hcHBseVBlcnNw
ZWN0aXZlKGZyb21QKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggZmRj
NzgyYi4uOTE5ZDE3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTUx
LDEwICs1MSw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBSb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgfQogCiAgICAgY29uc3Qg
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKiB0b09wID0gdGhpczsKLSAgICAKLSAgICBpZiAoYmxl
bmRUb0lkZW50aXR5KQotICAgICAgICBzd2FwKGZyb21PcCwgdG9PcCk7Ci0gICAgCisKICAgICAv
LyBDcmVhdGUgdGhlIDIgcm90YXRpb24gbWF0cmljZXMKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBmcm9tVDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0b1Q7CkBAIC04Nyw4ICs4NCw3IEBA
IFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246
OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgICAgIHkgLz0gbGVuZ3RoOwogICAgICAgICB6
IC89IGxlbmd0aDsKICAgICAgICAgYW5nbGUgPSByYWQyZGVnKGFjb3MoZGVjb21wLnF1YXRlcm5p
b25XKSAqIDIpOwotICAgIH0KLSAgICBlbHNlIHsKKyAgICB9IGVsc2UgewogICAgICAgICB4ID0g
MDsKICAgICAgICAgeSA9IDA7CiAgICAgICAgIHogPSAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IGMxZGIyOTUuLjJmNjlmOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
QEAgLTg4NiwxNSArODg2LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXI6Omluc2VydE9ubHlUaGlzTGF5
ZXIoKQogICAgICAgICAvLyBXZSBuZWVkIHRvIGNvbm5lY3Qgb3Vyc2VsdmVzIHdoZW4gb3VyIHJl
bmRlcmVyKCkgaGFzIGEgcGFyZW50LgogICAgICAgICAvLyBGaW5kIG91ciBlbmNsb3NpbmdMYXll
ciBhbmQgYWRkIG91cnNlbHZlcy4KICAgICAgICAgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0g
cmVuZGVyZXIoKS0+cGFyZW50KCktPmVuY2xvc2luZ0xheWVyKCk7CisgICAgICAgIEFTU0VSVChw
YXJlbnRMYXllcik7CiAgICAgICAgIFJlbmRlckxheWVyKiBiZWZvcmVDaGlsZCA9IHBhcmVudExh
eWVyLT5yZWZsZWN0aW9uTGF5ZXIoKSAhPSB0aGlzID8gcmVuZGVyZXIoKS0+cGFyZW50KCktPmZp
bmROZXh0TGF5ZXIocGFyZW50TGF5ZXIsIHJlbmRlcmVyKCkpIDogMDsKLSAgICAgICAgaWYgKHBh
cmVudExheWVyKQotICAgICAgICAgICAgcGFyZW50TGF5ZXItPmFkZENoaWxkKHRoaXMsIGJlZm9y
ZUNoaWxkKTsKKyAgICAgICAgcGFyZW50TGF5ZXItPmFkZENoaWxkKHRoaXMsIGJlZm9yZUNoaWxk
KTsKICAgICB9Ci0gICAgCisKICAgICAvLyBSZW1vdmUgYWxsIGRlc2NlbmRhbnQgbGF5ZXJzIGZy
b20gdGhlIGhpZXJhcmNoeSBhbmQgYWRkIHRoZW0gdG8gdGhlIG5ldyBwb3NpdGlvbi4KICAgICBm
b3IgKFJlbmRlck9iamVjdCogY3VyciA9IHJlbmRlcmVyKCktPmZpcnN0Q2hpbGQoKTsgY3Vycjsg
Y3VyciA9IGN1cnItPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGN1cnItPm1vdmVMYXllcnMobV9w
YXJlbnQsIHRoaXMpOwotICAgICAgICAKKwogICAgIC8vIENsZWFyIG91dCBhbGwgdGhlIGNsaXAg
cmVjdHMuCiAgICAgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogfQpAQCAt
MTI4Nyw3ICsxMjg3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZ0LCBjb25zdCBJbnRTaXplJiBvbGRPZmZzZXQKICAgICBFeGNlcHRpb25D
b2RlIGVjOwogCiAgICAgaWYgKGRpZmZlcmVuY2Uud2lkdGgoKSkgewotICAgICAgICBpZiAoZWxl
bWVudCAmJiBlbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChl
bGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CiAgICAgICAgICAgICAvLyBNYWtlIGlt
cGxpY2l0IG1hcmdpbnMgZnJvbSB0aGUgdGhlbWUgZXhwbGljaXQgKHNlZSA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0Nz4pLgogICAgICAgICAgICAgc3R5bGUtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5TWFyZ2luTGVmdCwgU3RyaW5nOjpudW1iZXIocmVuZGVyZXIt
Pm1hcmdpbkxlZnQoKSAvIHpvb21GYWN0b3IpICsgInB4IiwgZmFsc2UsIGVjKTsKICAgICAgICAg
ICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eU1hcmdpblJpZ2h0LCBTdHJpbmc6Om51
bWJlcihyZW5kZXJlci0+bWFyZ2luUmlnaHQoKSAvIHpvb21GYWN0b3IpICsgInB4IiwgZmFsc2Us
IGVjKTsKQEAgLTEyOTksNyArMTI5OSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlc2l6ZShjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2dCwgY29uc3QgSW50U2l6ZSYgb2xkT2Zmc2V0CiAgICAg
fQogCiAgICAgaWYgKGRpZmZlcmVuY2UuaGVpZ2h0KCkpIHsKLSAgICAgICAgaWYgKGVsZW1lbnQg
JiYgZWxlbWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoZWxlbWVu
dC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBpbXBsaWNp
dCBtYXJnaW5zIGZyb20gdGhlIHRoZW1lIGV4cGxpY2l0IChzZWUgPGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDc+KS4KICAgICAgICAgICAgIHN0eWxlLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU1hcmdpblRvcCwgU3RyaW5nOjpudW1iZXIocmVuZGVyZXItPm1hcmdp
blRvcCgpIC8gem9vbUZhY3RvcikgKyAicHgiLCBmYWxzZSwgZWMpOwogICAgICAgICAgICAgc3R5
bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5TWFyZ2luQm90dG9tLCBTdHJpbmc6Om51bWJlcihy
ZW5kZXJlci0+bWFyZ2luQm90dG9tKCkgLyB6b29tRmFjdG9yKSArICJweCIsIGZhbHNlLCBlYyk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAwYzgzYzVhLi4x
MzY2ZWUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24u
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTI0
NCw3ICsyNDQsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2VsbChSZW5kZXJUYWJs
ZUNlbGwqIGNlbGwsIFJlbmRlclRhYmxlUm93KiByb3cpCiAKICAgICAgICAgZm9yIChpbnQgciA9
IDA7IHIgPCByU3BhbjsgcisrKSB7CiAgICAgICAgICAgICBDZWxsU3RydWN0JiBjID0gY2VsbEF0
KG1fY1JvdyArIHIsIG1fY0NvbCk7Ci0gICAgICAgICAgICBpZiAoY3VycmVudENlbGwuY2VsbCAm
JiAhYy5jZWxsKQorICAgICAgICAgICAgaWYgKCFjLmNlbGwpCiAgICAgICAgICAgICAgICAgYy5j
ZWxsID0gY3VycmVudENlbGwuY2VsbDsKICAgICAgICAgICAgIGlmIChjdXJyZW50Q2VsbC5pbkNv
bFNwYW4pCiAgICAgICAgICAgICAgICAgYy5pbkNvbFNwYW4gPSB0cnVlOwpAQCAtMjU0LDEwICsy
NTQsOCBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2VsbChSZW5kZXJUYWJsZUNlbGwq
IGNlbGwsIFJlbmRlclRhYmxlUm93KiByb3cpCiAgICAgICAgIGN1cnJlbnRDZWxsLmNlbGwgPSAw
OwogICAgICAgICBjdXJyZW50Q2VsbC5pbkNvbFNwYW4gPSB0cnVlOwogICAgIH0KLSAgICBpZiAo
Y2VsbCkgewotICAgICAgICBjZWxsLT5zZXRSb3cobV9jUm93KTsKLSAgICAgICAgY2VsbC0+c2V0
Q29sKHRhYmxlKCktPmVmZkNvbFRvQ29sKGNvbCkpOwotICAgIH0KKyAgICBjZWxsLT5zZXRSb3co
bV9jUm93KTsKKyAgICBjZWxsLT5zZXRDb2wodGFibGUoKS0+ZWZmQ29sVG9Db2woY29sKSk7CiB9
CiAKIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpzZXRDZWxsV2lkdGhzKCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvV2ViQ29yZS9yZW5kZXJp
bmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggNmQ0M2U4NS4uZGQxNTRjNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdm9pZCBwcmVw
YXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJPYmplY3Q6
OlBhaW50SW5mbyYgcGEKICAgICBVTlVTRURfUEFSQU0ocm9vdEZpbHRlcik7CiAjZW5kaWYKIAor
ICAgIEFTU0VSVChvYmplY3QpOwogICAgIFNWR0VsZW1lbnQqIHN2Z0VsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxTVkdFbGVtZW50Kj4ob2JqZWN0LT5ub2RlKCkpOwogICAgIEFTU0VSVChzdmdFbGVtZW50
ICYmIHN2Z0VsZW1lbnQtPmRvY3VtZW50KCkgJiYgc3ZnRWxlbWVudC0+aXNTdHlsZWQoKSk7Ci0g
ICAgQVNTRVJUKG9iamVjdCk7CiAKICAgICBTVkdTdHlsZWRFbGVtZW50KiBzdHlsZWRFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8U1ZHU3R5bGVkRWxlbWVudCo+KHN2Z0VsZW1lbnQpOwogICAgIGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL2JpZGkuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvYmlkaS5jcHAKaW5kZXgg
NGE2YTQyYi4uMzc2NWQxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvYmlkaS5jcHAK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvYmlkaS5jcHAKQEAgLTIwOTgsOCArMjA5OCw3IEBAIElu
bGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayhJbmxpbmVCaWRpUmVz
b2x2ZXImIHJlc29sdmVyLCBib29sCiAgICAgfQogCiAgZW5kOgotCi0gICAgaWYgKGxCcmVhayA9
PSByZXNvbHZlci5wb3NpdGlvbigpICYmICFsQnJlYWsub2JqLT5pc0JSKCkpIHsKKyAgICBpZiAo
bEJyZWFrID09IHJlc29sdmVyLnBvc2l0aW9uKCkgJiYgKCFsQnJlYWsub2JqIHx8ICFsQnJlYWsu
b2JqLT5pc0JSKCkpKSB7CiAgICAgICAgIC8vIHdlIGp1c3QgYWRkIGFzIG11Y2ggYXMgcG9zc2li
bGUKICAgICAgICAgaWYgKHN0eWxlKCktPndoaXRlU3BhY2UoKSA9PSBQUkUpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBEb24ndCByZWFsbHkgdW5kZXJzdGFuZCB0aGlzIGNhc2UuCg==
</data>
<flag name="review"
          id="14182"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28899</attachid>
            <date>2009-03-24 13:12:24 -0700</date>
            <delta_ts>2009-03-24 13:19:55 -0700</delta_ts>
            <desc>Coverty fixes in Animations/Transforms</desc>
            <filename>Coverty-fixes-in-Animations-Transforms.patch</filename>
            <type>text/plain</type>
            <size>8375</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MzQ3NWJhMzMyOWViZGNiOWVjOWFmODVjYmU0NDI3NGRlYTNmNmQ0NwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZThhMzdiLi45YjAyZDBk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMyIEBACisyMDA5LTAzLTI0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3Zl
cnR5IGluc3BpcmVkIGZpeGVzIGluIEFuaW1hdGlvbnMvVHJhbnNmb3JtcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODQKKworICAgICAgICAqIHBh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaDoKKyAgICAgICAgICBGaXggYW5pbWF0ZSgpIHNp
Z25hdHVyZXMgdG8gbWF0Y2ggc28gdGhhdCB0aGUgdmlydHVhbCBtZXRob2RzIGFjdHVhbGx5IG92
ZXJyaWRlIG9uZSBhbm90aGVyLiA6KQorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OnJlbW92ZUZyb21TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KToKKyAgICAgICAgICBB
dHRlbXB0IHRvIGZpeCB0aGlzIG1ldGhvZCwgcHJldkFuaW1hdGlvbiB3YXMgbmV2ZXIgc2V0IHRv
IGFueXRoaW5nIGJ1dCBOVUxMLAorICAgICAgICAgIGFzIGZhciBhcyBJIGNhbiB0ZWxsIHRoZSBh
dXRob3Igb3JpZ2luYWxseSBpbnRlbmRlZCB0byB1cGRhdGUgaXQgYXQgdGhlIGVuZAorICAgICAg
ICAgIG9mIHRoZSBsb29wLCB3aGljaCBpcyB3aGF0IEkgY2hhbmdlZCB0aGlzIGNvZGUgdG8gZG8u
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUpOgorICAgICAgICAgIE1ha2Ug
bWV0aG9kIHNpZ25hdHVyZSBtYXRjaCBBbmltYXRpb25CYXNlOjphbmltYXRlCisgICAgICAgICog
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoKKyAgICAgICAgKiBwYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUFu
aW1hdGlvbjo6YW5pbWF0ZSk6CisgICAgICAgICAgTWFrZSBtZXRob2Qgc2lnbmF0dXJlIG1hdGNo
IEFuaW1hdGlvbkJhc2U6OmFuaW1hdGUKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyc3Bl
Y3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKToKKyAgICAgICAgICBpZiAoYmxlbmRUb0lk
ZW50aXR5KSBhbHJlYWR5IHJldHVybmVkIGFib3ZlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQpOgorICAgICAgICAgIGlmIChi
bGVuZFRvSWRlbnRpdHkpIGFscmVhZHkgcmV0dXJuZWQgYWJvdmUuCisKIDIwMDktMDMtMjQgIEFk
ZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJTIGJ5IE1hcmsgUm93
ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggMGRlNmQ3Yy4uZGE0
MzQxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgK
KysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTEyNCw5ICsx
MjQsOCBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgcHJvZ3Jlc3MoZG91YmxlIHNjYWxlLCBkb3Vi
bGUgb2Zmc2V0LCBjb25zdCBUaW1pbmdGdW5jdGlvbiopIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIGFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyU3R5bGUqIC8qY3VycmVudFN0eWxlKi8sIAotICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSog
Lyp0YXJnZXRTdHlsZSovLCBSZWZQdHI8UmVuZGVyU3R5bGU+JiAvKmFuaW1hdGVkU3R5bGUqLykg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldEFuaW1hdGVkU3R5bGUoUmVmUHRyPFJlbmRlclN0eWxl
PiYgLyphbmltYXRlZFN0eWxlKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKENvbXBv
c2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiAvKmN1cnJl
bnRTdHlsZSovLCBSZW5kZXJTdHlsZSogLyp0YXJnZXRTdHlsZSovLCBSZWZQdHI8UmVuZGVyU3R5
bGU+JiAvKmFuaW1hdGVkU3R5bGUqLykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBbmltYXRl
ZFN0eWxlKFJlZlB0cjxSZW5kZXJTdHlsZT4mIC8qYW5pbWF0ZWRTdHlsZSovKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRmlyZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHAgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGRiZDJkYmMuLmY5YzlhNDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcApAQCAtMzk2LDYgKzM5Niw3IEBAIHZvaWQgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OnJlbW92ZUZyb21TdGFydFRpbWVSZXNwb25zZVdhaXRMaXN0KEFuaW1h
dGlvbkJhCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICBhbmltYXRpb25Ub1JlbW92ZS0+
c2V0TmV4dCgwKTsKICAgICAgICAgfQorICAgICAgICBwcmV2QW5pbWF0aW9uID0gYW5pbWF0aW9u
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNp
dEFuaW1hdGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCAzOGU2YmQxLi44ZWMwYmUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtNjIsNyArNjIsNyBAQCBib29sIEltcGxpY2l0QW5p
bWF0aW9uOjpzaG91bGRTZW5kRXZlbnRGb3JMaXN0ZW5lcihEb2N1bWVudDo6TGlzdGVuZXJUeXBl
IGluTGlzdAogICAgIHJldHVybiBtX29iamVjdC0+ZG9jdW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBl
KGluTGlzdGVuZXJUeXBlKTsKIH0KIAotdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6YW5pbWF0ZShD
b21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBSZW5kZXJTdHlsZSosIFJlbmRlclN0
eWxlKiB0YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSkKK3Zv
aWQgSW1wbGljaXRBbmltYXRpb246OmFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0aW9uKiwgUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUsIFJl
ZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpCiB7CiAgICAgLy8gSWYgd2UgZ2V0IHRo
aXMgZmFyIGFuZCB0aGUgYW5pbWF0aW9uIGlzIGRvbmUsIGl0IG1lYW5zIHdlIGFyZSBjbGVhbmlu
ZyB1cCBhIGp1c3QgZmluaXNoZWQgYW5pbWF0aW9uLgogICAgIC8vIFNvIGp1c3QgcmV0dXJuLiBF
dmVyeXRoaW5nIGlzIGFscmVhZHkgYWxsIGNsZWFuZWQgdXAuCkBAIC0xODQsNyArMTg0LDYgQEAg
dm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6cmVzZXQoUmVuZGVyU3R5bGUqIHRvKQogewogICAgIEFT
U0VSVCh0byk7CiAgICAgQVNTRVJUKG1fZnJvbVN0eWxlKTsKLSAgICAKIAogICAgIG1fdG9TdHls
ZSA9IHRvOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmggYi9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKaW5k
ZXggNTMzZmJjYy4uMjIxYzQ1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uaApAQCAtNDksOCArNDksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9u
QW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSk7CiAgICAgdmlydHVhbCBib29sIHN0YXJ0
QW5pbWF0aW9uKGRvdWJsZSBiZWdpblRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBlbmRBbmltYXRp
b24oYm9vbCByZXNldCk7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoQ29tcG9zaXRl
QW5pbWF0aW9uKiwgUmVuZGVyT2JqZWN0KiwgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVu
ZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxl
KTsKKworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiB0
YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSk7CiAgICAgdmly
dHVhbCB2b2lkIGdldEFuaW1hdGVkU3R5bGUoUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRT
dHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0KFJlbmRlclN0eWxlKiB0byk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggMDkwNDMzYi4u
ODhhNWY2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1h
dGlvbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5j
cHAKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6Z2V0S2V5ZnJhbWVB
bmltYXRpb25JbnRlcnZhbChjb25zdCBSZW5kZXJTdHlsZSomIGZyb21TdHkKICAgICBwcm9nID0g
cHJvZ3Jlc3Moc2NhbGUsIG9mZnNldCwgdGltaW5nRnVuY3Rpb24pOwogfQogCi12b2lkIEtleWZy
YW1lQW5pbWF0aW9uOjphbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3QgUmVuZGVyU3R5bGUqIHRhcmdldFN0eWxlLCBSZWZQ
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQordm9pZCBLZXlmcmFtZUFuaW1hdGlvbjo6
YW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJT
dHlsZSosIFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5p
bWF0ZWRTdHlsZSkKIHsKICAgICAvLyBGaXJlIHRoZSBzdGFydCB0aW1lb3V0IGlmIG5lZWRlZAog
ICAgIGZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oIGIvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5oCmluZGV4IDJhMWUyMTMuLjEwOTBlNWIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaAorKysgYi9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmgKQEAgLTQ0LDggKzQ0LDggQEAgcHVi
bGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlmcmFtZUFuaW1hdGlv
bihhbmltYXRpb24sIHJlbmRlcmVyLCBpbmRleCwgY29tcG9zaXRlQW5pbWF0aW9uLCB1bmFuaW1h
dGVkU3R5bGUpKTsKICAgICB9OwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKENvbXBv
c2l0ZUFuaW1hdGlvbiosIFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclN0eWxlKiBjdXJyZW50
U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiB0YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxl
PiYgYW5pbWF0ZWRTdHlsZSk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShDb21wb3NpdGVB
bmltYXRpb24qLCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxl
LCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUsIFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVk
U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRBbmltYXRlZFN0eWxlKFJlZlB0cjxSZW5kZXJT
dHlsZT4mIGFuaW1hdGVkU3R5bGUpOwogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpOyB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Bl
cnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCBhMjcxM2JhLi45ZmQwM2ExIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3Rp
dmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTQzLDEwICs0
Myw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBQZXJzcGVjdGl2ZVRyYW5zZm9y
bU9wZXJhdGlvbjo6YmxlbmQoY29uc3QgVHJhbnNmCiAgICAgY29uc3QgUGVyc3BlY3RpdmVUcmFu
c2Zvcm1PcGVyYXRpb24qIGZyb21PcCA9IHN0YXRpY19jYXN0PGNvbnN0IFBlcnNwZWN0aXZlVHJh
bnNmb3JtT3BlcmF0aW9uKj4oZnJvbSk7CiAgICAgZG91YmxlIGZyb21QID0gZnJvbU9wID8gZnJv
bU9wLT5tX3AgOiAwOwogICAgIGRvdWJsZSB0b1AgPSBtX3A7Ci0gICAgCi0gICAgaWYgKGJsZW5k
VG9JZGVudGl0eSkKLSAgICAgICAgc3dhcChmcm9tUCwgdG9QKTsKLSAgICAKKwogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IGZyb21UOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRvVDsKICAg
ICBmcm9tVC5hcHBseVBlcnNwZWN0aXZlKGZyb21QKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5jcHAKaW5kZXggZmRjNzgyYi4uOTE5ZDE3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5jcHAKQEAgLTUxLDEwICs1MSw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0
aW9uPiBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAg
ICAgfQogCiAgICAgY29uc3QgUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uKiB0b09wID0gdGhpczsK
LSAgICAKLSAgICBpZiAoYmxlbmRUb0lkZW50aXR5KQotICAgICAgICBzd2FwKGZyb21PcCwgdG9P
cCk7Ci0gICAgCisKICAgICAvLyBDcmVhdGUgdGhlIDIgcm90YXRpb24gbWF0cmljZXMKICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBmcm9tVDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0b1Q7
CkBAIC04Nyw4ICs4NCw3IEBAIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPiBSb3RhdGVU
cmFuc2Zvcm1PcGVyYXRpb246OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wCiAgICAgICAgIHkgLz0g
bGVuZ3RoOwogICAgICAgICB6IC89IGxlbmd0aDsKICAgICAgICAgYW5nbGUgPSByYWQyZGVnKGFj
b3MoZGVjb21wLnF1YXRlcm5pb25XKSAqIDIpOwotICAgIH0KLSAgICBlbHNlIHsKKyAgICB9IGVs
c2UgewogICAgICAgICB4ID0gMDsKICAgICAgICAgeSA9IDA7CiAgICAgICAgIHogPSAxOwo=
</data>
<flag name="review"
          id="14281"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28900</attachid>
            <date>2009-03-24 13:12:27 -0700</date>
            <delta_ts>2009-03-25 13:16:33 -0700</delta_ts>
            <desc>Font fallback cleanup and added ASSERT for GlyphPageTreeNode</desc>
            <filename>Font-fallback-cleanup-and-added-ASSERT-for-GlyphPageTreeNode.patch</filename>
            <type>text/plain</type>
            <size>4164</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MjJjMmZjZTY1NGU5NTljYzExZWM3ZDk5ZWM5ODQ5MGJmOGYxY2QzZApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjAyZDBkLi45MGQxNDQy
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIzIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgRm9udCBmYWxsYmFjayBjbGVhbnVwIGFuZCBhZGRlZCBBU1NFUlQgZm9yIEdseXBo
UGFnZVRyZWVOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDY4NAorCisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjb21wYXJlRm9udEZhY2VzKToKKyAgICAgICAgICBDb3ZlcnR5IHdhcyBjb25j
ZXJuZWQgdGhhdCBpdCB3YXMgcG9zc2libGUgdG8gaW5kZXggb2ZmIHRoZSBlbmQgb2Ygd2VpZ2h0
RmFsbGJhY2tSdWxlU2V0cworICAgICAgICAgIEkgY2FuJ3QgcmVhZCB0aGUgY29kZSB3ZWxsIGVu
b3VnaCB0byB0ZWxsLCBzbyBJIHRyaWVkIHRvIG1ha2UgdGhlIGNvZGUgY2xlYXJlcgorICAgICAg
ICAgIGFuZCBhZGRlZCBhbiBBU1NFUlQuICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFBhZ2VU
cmVlTm9kZTo6aW5pdGlhbGl6ZVBhZ2UpOgorICAgICAgICAgIENvdmVydHkgYmVsaWV2ZXMgd2Ug
Y2FuIGNyYXNoIGhlcmUgZHVlIHRvIGogYmVpbmcgbGFyZ2VyIHRoYW4gR2x5cGhQYWdlOjpzaXpl
LiAgSSB0aGluayB0byBpcyBhbHJlYWR5CisgICAgICAgICAga25vd24gdG8gYmUgPCBHbHlwaFBh
Z2U6OnNpemUgZHVlIHRvIHRoZSBtaW4oKSBzdGF0ZW1lbnQgYWJvdmUsIGJ1dCBub3QgYmVpbmcg
c3VyZSBJIGFkZGVkIGFuIEFTU0VSVC4KKworMjAwOS0wMy0yNCAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAg
ICAgICAgQ292ZXJ0eSBpbnNwaXJlZCBmaXhlcyBpbiBBbmltYXRpb25zL1RyYW5zZm9ybXMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Njg0CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuY3BwCmluZGV4IDUwMDVjMzkuLjRiOTA3NTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtNDMzLDcgKzQzMyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJl
Rm9udEZhY2VzKENTU0ZvbnRGYWNlKiBmaXJzdCwgQ1NTRm9udEZhY2UqIHNlY29uZCkKICAgICAv
LyBvciB0aGUgbmV4dCBkYXJrZXIgb3RoZXJ3aXNlLiIKICAgICAvLyBGb3IgJzQwMCcsIHdlIG1h
ZGUgdXAgb3VyIG93biBydWxlICh3aGljaCB0aGVuICc1MDAnIGZvbGxvd3MpLgogCi0gICAgc3Rh
dGljIGNvbnN0IEZvbnRUcmFpdHNNYXNrIHdlaWdodEZhbGxiYWNrUnVsZXNbOV1bOF0gPSB7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGZhbGxiYWNrUnVsZVNldHMgPSA5OworICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBydWxlc1BlclNldCA9IDg7CisgICAgc3RhdGljIGNvbnN0IEZvbnRU
cmFpdHNNYXNrIHdlaWdodEZhbGxiYWNrUnVsZVNldHNbZmFsbGJhY2tSdWxlU2V0c11bcnVsZXNQ
ZXJTZXRdID0gewogICAgICAgICB7IEZvbnRXZWlnaHQyMDBNYXNrLCBGb250V2VpZ2h0MzAwTWFz
aywgRm9udFdlaWdodDQwME1hc2ssIEZvbnRXZWlnaHQ1MDBNYXNrLCBGb250V2VpZ2h0NjAwTWFz
aywgRm9udFdlaWdodDcwME1hc2ssIEZvbnRXZWlnaHQ4MDBNYXNrLCBGb250V2VpZ2h0OTAwTWFz
ayB9LAogICAgICAgICB7IEZvbnRXZWlnaHQxMDBNYXNrLCBGb250V2VpZ2h0MzAwTWFzaywgRm9u
dFdlaWdodDQwME1hc2ssIEZvbnRXZWlnaHQ1MDBNYXNrLCBGb250V2VpZ2h0NjAwTWFzaywgRm9u
dFdlaWdodDcwME1hc2ssIEZvbnRXZWlnaHQ4MDBNYXNrLCBGb250V2VpZ2h0OTAwTWFzayB9LAog
ICAgICAgICB7IEZvbnRXZWlnaHQyMDBNYXNrLCBGb250V2VpZ2h0MTAwTWFzaywgRm9udFdlaWdo
dDQwME1hc2ssIEZvbnRXZWlnaHQ1MDBNYXNrLCBGb250V2VpZ2h0NjAwTWFzaywgRm9udFdlaWdo
dDcwME1hc2ssIEZvbnRXZWlnaHQ4MDBNYXNrLCBGb250V2VpZ2h0OTAwTWFzayB9LApAQCAtNDQ1
LDE0ICs0NDcsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVGb250RmFjZXMoQ1NTRm9u
dEZhY2UqIGZpcnN0LCBDU1NGb250RmFjZSogc2Vjb25kKQogICAgICAgICB7IEZvbnRXZWlnaHQ4
MDBNYXNrLCBGb250V2VpZ2h0NzAwTWFzaywgRm9udFdlaWdodDYwME1hc2ssIEZvbnRXZWlnaHQ1
MDBNYXNrLCBGb250V2VpZ2h0NDAwTWFzaywgRm9udFdlaWdodDMwME1hc2ssIEZvbnRXZWlnaHQy
MDBNYXNrLCBGb250V2VpZ2h0MTAwTWFzayB9CiAgICAgfTsKIAotICAgIGNvbnN0IEZvbnRUcmFp
dHNNYXNrKiB3ZWlnaHRGYWxsYmFja1J1bGUgPSB3ZWlnaHRGYWxsYmFja1J1bGVzWzBdOworICAg
IHVuc2lnbmVkIHJ1bGVTZXRJbmRleCA9IDA7CiAgICAgdW5zaWduZWQgdyA9IEZvbnRXZWlnaHQx
MDBCaXQ7CiAgICAgd2hpbGUgKCEoZGVzaXJlZFRyYWl0c01hc2tGb3JDb21wYXJpc29uICYgKDEg
PDwgdykpKSB7CiAgICAgICAgIHcrKzsKLSAgICAgICAgd2VpZ2h0RmFsbGJhY2tSdWxlICs9IDg7
CisgICAgICAgIHJ1bGVTZXRJbmRleCsrOwogICAgIH0KIAotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCA4OyArK2kpIHsKKyAgICBBU1NFUlQocnVsZVNldEluZGV4IDwgZmFsbGJhY2tSdWxl
U2V0cyk7CisgICAgY29uc3QgRm9udFRyYWl0c01hc2sqIHdlaWdodEZhbGxiYWNrUnVsZSA9IHdl
aWdodEZhbGxiYWNrUnVsZVNldHNbcnVsZVNldEluZGV4XTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcnVsZXNQZXJTZXQ7ICsraSkgewogICAgICAgICBpZiAoc2Vjb25kVHJhaXRzTWFz
ayAmIHdlaWdodEZhbGxiYWNrUnVsZVtpXSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGZpcnN0VHJhaXRzTWFzayAmIHdlaWdodEZhbGxiYWNrUnVsZVtpXSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlVHJlZU5vZGUuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBhZ2VUcmVlTm9kZS5jcHAKaW5kZXggNmI5
ZDIzZC4uYmQ4MzhkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aFBhZ2VUcmVlTm9kZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaFBh
Z2VUcmVlTm9kZS5jcHAKQEAgLTIxOCw2ICsyMTgsNyBAQCB2b2lkIEdseXBoUGFnZVRyZWVOb2Rl
Ojppbml0aWFsaXplUGFnZShjb25zdCBGb250RGF0YSogZm9udERhdGEsIHVuc2lnbmVkIHBhZ2VO
dQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgaGF2
ZUdseXBocyB8PSBwYWdlVG9GaWxsLT5maWxsKGZyb20sIHRvIC0gZnJvbSwgYnVmZmVyICsgZnJv
bSAqIChzdGFydCA8IDB4MTAwMDAgPyAxIDogMiksICh0byAtIGZyb20pICogKHN0YXJ0IDwgMHgx
MDAwMCA/IDEgOiAyKSwgcmFuZ2UuZm9udERhdGEoKSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc2NyYXRjaFBhZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
dG8gPD0gIHN0YXRpY19jYXN0PGludD4oR2x5cGhQYWdlOjpzaXplKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGZyb207IGogPCB0bzsgaisrKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbV9wYWdlLT5tX2dseXBoc1tqXS5nbHlwaCAm
JiBwYWdlVG9GaWxsLT5tX2dseXBoc1tqXS5nbHlwaCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcGFnZS0+bV9nbHlwaHNbal0gPSBwYWdlVG9GaWxsLT5tX2dseXBoc1tq
XTsK
</data>
<flag name="review"
          id="14282"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28901</attachid>
            <date>2009-03-24 13:12:29 -0700</date>
            <delta_ts>2009-03-25 10:20:04 -0700</delta_ts>
            <desc>CSS dead code removal and cleanup from Coverty errors</desc>
            <filename>CSS-dead-code-removal-and-cleanup-from-Coverty-errors.patch</filename>
            <type>text/plain</type>
            <size>10723</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZDExZjRhOGI3Mzk5YzE1ZTUxYzNiNTkzNWFhZDAxNzFiYWEwNTZhMwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MGQxNDQyLi4yMjRjNjQw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDMwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQ1NTIGRlYWQgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwIGZyb20gQ292ZXJ0eSBl
cnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
Njg0CisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgICBFdmVyeSBv
dGhlciBwbGFjZSBpbiB0aGUgY29kZSB3ZSBjaGVjayBzZXR0aW5ncygpIGZvciBOVUxMLCBzbyBJ
IG1hZGUgdGhlc2UgcGxhY2VzCisgICAgICAgICAgY2hlY2sgdG9vLCBldmVuIHRob3VnaCB3ZSBz
aG91bGQgbmV2ZXIgYmUgcmVzb2x2aW5nIHN0eWxlIGFnYWluc3QgYSBkb2N1bWVudCB3aGljaCBo
YXMKKyAgICAgICAgICBubyBmcmFtZSAod2hpY2ggSSBiZWxpZXZlIGlzIHRoZSBvbmx5IHRpbWUg
c2V0dGluZ3MoKSBjYW4gYmUgbnVsbCkKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpzdHlsZVNoZWV0Q2hhbmdlZCk6Cisg
ICAgICAgICAgUmVtb3ZpbmcgZGVhZCBjb2RlLCAicm9vdCIgY2FuIG5ldmVyIGJlIG51bGwgaGVy
ZS4KKyAgICAgICAgKiBjc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb2xvckZyb21TVkdDb2xvckNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAgICAgIEV4dHJhIHJldHVybnMg
aW4gdGhlIG9sZCBtYWNyb3MgY2F1c2VkIGRlYWQgY29kZS4gIFJlbW92aW5nIHRoZSBvbGQgbWFj
cm9zIGFuZCB1c2UgbW9kZXJuCisgICAgICAgICAgb25lcyBpbnN0ZWFkLiA6KQorICAgICAgICAg
IEV4dHJhIG51bGwgY2hlY2tzIHRvIHZhbHVlIHdlcmUgbm90IG5lZWRlZC4gIEFkZGVkIGFuIEFT
U0VSVCBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbgorICAgICAgICAgIHRvIG1ha2UgaXQgY2xl
YXIgdGhhdCB2YWx1ZSB3aWxsIG5ldmVyIGJlIE5VTEwuCisgICAgICAgICAgQWRkZWQgY29sb3JG
cm9tU1ZHQ29sb3JDU1NWYWx1ZSB0byBjbGVhbiB1cCB0aGUgY29kZSBhIGxpdHRsZS4KKworMjAw
OS0wMy0yNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgRm9udCBmYWxsYmFjayBjbGVhbnVwIGFu
ZCBhZGRlZCBBU1NFUlQgZm9yIEdseXBoUGFnZVRyZWVOb2RlCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4NAogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCmluZGV4IDBmYzU0YWMuLjU2YjQ3N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBA
IC00MzM5LDYgKzQzMzksOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHko
aW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAgICAgbV9mb250RGlydHkgPSB0
cnVlOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzID0gbV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CisgICAgICAg
ICAgICBBU1NFUlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9u
LCB0aGlzIGRvY3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZl
IHNldHRpbmdzCisgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CiAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246
OlN0YW5kYXJkRmFtaWx5KTsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJp
bmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKQEAgLTQzNjUsNiArNDM2OCw5
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVl
ICp2YWx1ZSkKICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24uaXNBYnNvbHV0ZVNpemUo
KSkgewogICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVyaW5nIG1vZGUgYW5k
IHByaW50ZXIgZm9udCBzZXR0aW5ncyBhcmUgdXBkYXRlZC4KICAgICAgICAgICAgICAgICBTZXR0
aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIubV9kb2N1bWVudC0+c2V0dGluZ3MoKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNv
bHV0aW9uLCB0aGlzIGRvY3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1
cyBoYXZlIHNldHRpbmdzCisgICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5ncykKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRS
ZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICAgICAgICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQobV9jaGVja2VyLm1fZG9jdW1l
bnQtPnByaW50aW5nKCkpOwogICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2hlZXQuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggODAx
ZmUxYi4uM2UyNzg4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTE5NCwxNCArMTk0LDEzIEBA
IHZvaWQgQ1NTU3R5bGVTaGVldDo6c3R5bGVTaGVldENoYW5nZWQoKQogICAgIFN0eWxlQmFzZSog
cm9vdCA9IHRoaXM7CiAgICAgd2hpbGUgKFN0eWxlQmFzZSogcGFyZW50ID0gcm9vdC0+cGFyZW50
KCkpCiAgICAgICAgIHJvb3QgPSBwYXJlbnQ7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50VG9VcGRh
dGUgPSAocm9vdCAmJiByb290LT5pc0NTU1N0eWxlU2hlZXQoKSkgPyBzdGF0aWNfY2FzdDxDU1NT
dHlsZVNoZWV0Kj4ocm9vdCktPmRvYygpIDogMDsKLSAgICAKKwogICAgIC8qIEZJWE1FOiBXZSBk
b24ndCBuZWVkIHRvIGRvIGV2ZXJ5dGhpbmcgdXBkYXRlU3R5bGVTZWxlY3RvciBkb2VzLAogICAg
ICAqIGJhc2ljYWxseSB3ZSBqdXN0IG5lZWQgdG8gcmVjcmVhdGUgdGhlIGRvY3VtZW50J3Mgc2Vs
ZWN0b3Igd2l0aCB0aGUKICAgICAgKiBhbHJlYWR5IGV4aXN0aW5nIHN0eWxlIHNoZWV0cy4KICAg
ICAgKi8KLSAgICBpZiAoZG9jdW1lbnRUb1VwZGF0ZSkKLSAgICAgICAgZG9jdW1lbnRUb1VwZGF0
ZS0+dXBkYXRlU3R5bGVTZWxlY3RvcigpOworICAgIGlmIChyb290LT5pc0NTU1N0eWxlU2hlZXQo
KSkKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHJvb3QpLT5kb2MoKS0+dXBk
YXRlU3R5bGVTZWxlY3RvcigpOwogfQogCiBLVVJMIENTU1N0eWxlU2hlZXQ6OmNvbXBsZXRlVVJM
KGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApp
bmRleCAzNGQ5ODFjLi5kMzI2ZGRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHls
ZVNlbGVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcApA
QCAtNTksMjUgKzU5LDYgQEAgSEFORExFX0lOSEVSSVQocHJvcCwgUHJvcCkgXAogZWxzZSBpZiAo
aXNJbml0aWFsKSBcCiAgICAgc3Znc3R5bGUtPnNldCMjUHJvcChTVkdSZW5kZXJTdHlsZTo6aW5p
dGlhbCMjUHJvcCgpKTsKIAotI2RlZmluZSBIQU5ETEVfSU5IRVJJVF9DT05EKHByb3BJRCwgcHJv
cCwgUHJvcCkgXAotaWYgKGlkID09IHByb3BJRCkgXAote1wKLSAgICBzdmdzdHlsZS0+c2V0IyNQ
cm9wKG1fcGFyZW50U3R5bGUtPnN2Z1N0eWxlKCktPnByb3AoKSk7XAotICAgIHJldHVybjtcCi19
Ci0KLSNkZWZpbmUgSEFORExFX0lOSVRJQUxfQ09ORChwcm9wSUQsIFByb3ApIFwKLWlmIChpZCA9
PSBwcm9wSUQpIFwKLXtcCi0gICAgc3Znc3R5bGUtPnNldCMjUHJvcChTVkdSZW5kZXJTdHlsZTo6
aW5pdGlhbCMjUHJvcCgpKTtcCi0gICAgcmV0dXJuO1wKLX0KLQotI2RlZmluZSBIQU5ETEVfSU5J
VElBTF9DT05EX1dJVEhfVkFMVUUocHJvcElELCBQcm9wLCBWYWx1ZSkgXAotaWYgKGlkID09IHBy
b3BJRCkgeyBcCi0gICAgc3Znc3R5bGUtPnNldCMjUHJvcChTVkdSZW5kZXJTdHlsZTo6aW5pdGlh
bCMjVmFsdWUoKSk7IFwKLSAgICByZXR1cm47IFwKLX0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xMTEsOCArOTIsMjEgQEAgc3RhdGljIGludCBhbmdsZVRvR2x5cGhPcmllbnRhdGlvbihm
bG9hdCBhbmdsZSkKICAgICByZXR1cm4gLTE7CiB9CiAKK3N0YXRpYyBDb2xvciBjb2xvckZyb21T
VkdDb2xvckNTU1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQorewor
ICAgIEFTU0VSVCh2YWx1ZS0+aXNTVkdDb2xvcigpKTsKKyAgICBTVkdDb2xvciogYyA9IHN0YXRp
Y19jYXN0PFNWR0NvbG9yKj4odmFsdWUpOworICAgIENvbG9yIGNvbG9yOworICAgIGlmIChjLT5j
b2xvclR5cGUoKSA9PSBTVkdDb2xvcjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpCisgICAg
ICAgIGNvbG9yID0gc3R5bGUtPmNvbG9yKCk7CisgICAgZWxzZQorICAgICAgICBjb2xvciA9IGMt
PmNvbG9yKCk7CisgICAgcmV0dXJuIGNvbG9yOworfQorCiB2b2lkIENTU1N0eWxlU2VsZWN0b3I6
OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJU
KHZhbHVlKTsKICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSAwOwogICAg
IGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwpAQCAtMTY4LDE1ICsxNjIs
NyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBDU1NW
YWx1ZSogdmFsdWUpCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUtlcm5pbmc6
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKLSAgICAgICAgICAgICAg
ICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU1Byb3BlcnR5S2VybmluZywga2VybmluZywgS2Vybmlu
ZykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBl
bHNlIGlmIChpc0luaXRpYWwpIHsKLSAgICAgICAgICAgICAgICBIQU5ETEVfSU5JVElBTF9DT05E
X1dJVEhfVkFMVUUoQ1NTUHJvcGVydHlLZXJuaW5nLCBLZXJuaW5nLCBLZXJuaW5nKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgSEFORExFX0lO
SEVSSVRfQU5EX0lOSVRJQUwoa2VybmluZywgS2VybmluZyk7CiAgICAgICAgICAgICBzdmdzdHls
ZS0+c2V0S2VybmluZyhwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtMjU0LDUyICsyNDAsMzcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNW
R1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5RmlsbDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwoZmlsbFBhaW50LCBGaWxsUGFpbnQpCi0gICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVl
ICYmIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgU1ZHUGFpbnQgKnBhaW50ID0gc3RhdGljX2Nh
c3Q8U1ZHUGFpbnQqPih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBhaW50KQotICAgICAg
ICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0RmlsbFBhaW50KHBhaW50KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCisg
ICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldEZpbGxQYWludChzdGF0aWNfY2FzdDxTVkdQYWlu
dCo+KHZhbHVlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5U3Ryb2tlOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJ
VF9BTkRfSU5JVElBTChzdHJva2VQYWludCwgU3Ryb2tlUGFpbnQpCi0gICAgICAgICAgICBpZiAo
IXByaW1pdGl2ZVZhbHVlICYmIHZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgU1ZHUGFpbnQgKnBh
aW50ID0gc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYg
KHBhaW50KQotICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlUGFpbnQocGFp
bnQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkp
CisgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVBhaW50KHN0YXRpY19jYXN0PFNW
R1BhaW50Kj4odmFsdWUpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZVdpZHRoOgogICAgICAgICB7CiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdHJva2VXaWR0aCwgU3Ryb2tl
V2lkdGgpCi0gICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCi0gICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlV2lkdGgo
cHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQorICAgICAg
ICAgICAgICAgIHN2Z3N0eWxlLT5zZXRTdHJva2VXaWR0aChwcmltaXRpdmVWYWx1ZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tl
RGFzaGFycmF5OgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTChzdHJva2VEYXNoQXJyYXksIFN0cm9rZURhc2hBcnJheSkKLSAgICAgICAgICAgIGlmICgh
cHJpbWl0aXZlVmFsdWUgJiYgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICBDU1NWYWx1ZUxpc3Qq
IGRhc2hlcyA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKLSAgICAgICAgICAg
ICAgICBpZiAoZGFzaGVzKQotICAgICAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tl
RGFzaEFycmF5KGRhc2hlcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIAorICAgICAgICAgICAg
aWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRT
dHJva2VEYXNoQXJyYXkoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdHJva2VE
YXNob2Zmc2V0OgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTChzdHJva2VEYXNoT2Zmc2V0LCBTdHJva2VEYXNoT2Zmc2V0KQotICAgICAgICAgICAgaWYg
KCFwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRTdHJva2VEYXNoT2Zmc2V0KHByaW1pdGl2ZVZhbHVlKTsKKyAgICAgICAg
ICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ry
b2tlRGFzaE9mZnNldChwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5RmlsbE9wYWNpdHk6CkBAIC00OTEsMzUgKzQ2
MiwxMyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlkLCBD
U1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdG9wQ29sb3I6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHN0b3BDb2xvciwg
U3RvcENvbG9yKTsKLQotICAgICAgICAgICAgU1ZHQ29sb3IqIGMgPSBzdGF0aWNfY2FzdDxTVkdD
b2xvcio+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmICghYykKLSAgICAgICAgICAgICAgICByZXR1
cm4gQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUpOwotCi0gICAgICAg
ICAgICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAoYy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29s
b3I6OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQotICAgICAgICAgICAgICAgIGNvbCA9IG1f
c3R5bGUtPmNvbG9yKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29sID0g
Yy0+Y29sb3IoKTsKLQotICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0b3BDb2xvcihjb2wpOwor
ICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0b3BDb2xvcihjb2xvckZyb21TVkdDb2xvckNTU1Zh
bHVlKHZhbHVlLCBtX3N0eWxlLmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgIGNhc2UgQ1NTUHJvcGVydHlMaWdodGluZ0NvbG9yOgogICAgICAgICB7CiAgICAg
ICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChsaWdodGluZ0NvbG9yLCBMaWdodGlu
Z0NvbG9yKTsKLQotICAgICAgICAgICAgU1ZHQ29sb3IqIGMgPSBzdGF0aWNfY2FzdDxTVkdDb2xv
cio+KHZhbHVlKTsKLSAgICAgICAgICAgIGlmICghYykKLSAgICAgICAgICAgICAgICByZXR1cm4g
Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpZCwgdmFsdWUpOwotCi0gICAgICAgICAg
ICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAoYy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29sb3I6
OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQotICAgICAgICAgICAgICAgIGNvbCA9IG1fc3R5
bGUtPmNvbG9yKCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY29sID0gYy0+
Y29sb3IoKTsKLQotICAgICAgICAgICAgc3Znc3R5bGUtPnNldExpZ2h0aW5nQ29sb3IoY29sKTsK
KyAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRMaWdodGluZ0NvbG9yKGNvbG9yRnJvbVNWR0NvbG9y
Q1NTVmFsdWUodmFsdWUsIG1fc3R5bGUuZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZE9wYWNpdHk6CkBAIC01NDIsMjEg
KzQ5MSwxMSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkoaW50IGlk
LCBDU1NWYWx1ZSogdmFsdWUpCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZs
b29kQ29sb3I6CiAgICAgICAgIHsKLSAgICAgICAgICAgIENvbG9yIGNvbDsKLSAgICAgICAgICAg
IGlmIChpc0luaXRpYWwpCi0gICAgICAgICAgICAgICAgY29sID0gU1ZHUmVuZGVyU3R5bGU6Omlu
aXRpYWxGbG9vZENvbG9yKCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBT
VkdDb2xvciAqYyA9IHN0YXRpY19jYXN0PFNWR0NvbG9yKj4odmFsdWUpOwotICAgICAgICAgICAg
ICAgIGlmICghYykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxlU2VsZWN0b3I6
OmFwcGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKLQotICAgICAgICAgICAgICAgIGlmIChjLT5jb2xv
clR5cGUoKSA9PSBTVkdDb2xvcjo6U1ZHX0NPTE9SVFlQRV9DVVJSRU5UQ09MT1IpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbCA9IG1fc3R5bGUtPmNvbG9yKCk7Ci0gICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBjb2wgPSBjLT5jb2xvcigpOworICAgICAgICAgICAgaWYg
KGlzSW5pdGlhbCkgeworICAgICAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGbG9vZENvbG9yKFNW
R1JlbmRlclN0eWxlOjppbml0aWFsRmxvb2RDb2xvcigpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN2Z3N0eWxlLT5zZXRGbG9vZENvbG9y
KGNvbCk7CisgICAgICAgICAgICBzdmdzdHlsZS0+c2V0Rmxvb2RDb2xvcihjb2xvckZyb21TVkdD
b2xvckNTU1ZhbHVlKHZhbHVlLCBtX3N0eWxlLmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5R2x5cGhPcmllbnRhdGlvbkhvcml6
b250YWw6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28902</attachid>
            <date>2009-03-24 13:12:32 -0700</date>
            <delta_ts>2009-03-25 13:14:40 -0700</delta_ts>
            <desc>Style cleanup and dead code removal in dom, editing</desc>
            <filename>Style-cleanup-and-dead-code-removal-in-dom-editing.patch</filename>
            <type>text/plain</type>
            <size>7896</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NTY3Mjg0MDFlOTY2YzU4NmY3ZmNlNDMwM2VmNDAyYjUyMzI4ZDlhMgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMjRjNjQwLi4zM2ViZmZk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDM3IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgU3R5bGUgY2xlYW51cCBhbmQgZGVhZCBjb2RlIHJlbW92YWwgaW4gZG9tLCBlZGl0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4
NAorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0Q29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRhaW5lck5vZGU6OmdldExvd2VyUmlnaHRDb3JuZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6Z2V0UmVjdCk6CisgICAgICAgICAgQ292ZXJ0eSB3YXMgKHJpZ2h0bHkpIGNv
bmZ1c2VkIGFzIHRvIHdoYXQgdGhlIGhlbGwgIm8iIHdhcyBiZWluZyB1c2VkIGZvcgorICAgICAg
ICAgIGFuZCB3aGV0aGVyIG9yIG5vdCBpdCB3b3VsZCBldmVyIGJlIE5VTEwuICBJIGFkZGVkIHNv
bWUgQVNTRVJUUyBzbyB0aGF0IHBlb3BsZSAoYW5kIG1hY2hpbmVzKQorICAgICAgICAgIHdvdWxk
IGJlIGxlc3MgY29uZnVzZWQgYWJvdXQgdGhlIGxvZ2ljIGluIGdldFVwcGVyTGVmdENvcm5lci9n
ZXRMb3dlclJpZ2h0Q29ybmVyCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZWNhbGNTdHlsZSk6CisgICAgICAgICAgUmVtb3ZlIGRlYWQg
Y29kZSwgdGhpcyBibG9jayBhbHJlYWR5IGNoZWNrZWQgdGhhdCBjaGFuZ2UgPT0gRm9yY2UKKyAg
ICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbmxpbmVTdHlsZSk6CisgICAgICAgICAgQ292ZXJ0
eSBjb3JyZWN0bHkgaWRlbnRpZmllZCB0aGF0IHRyYXZlcnNlUHJldmlvdXNOb2RlUG9zdE9yZGVy
IGNhbiByZXR1cm4gTlVMTCwgdGh1cworICAgICAgICAgIHByZXYgd2lsbCBiZSBudWxsLCBhbmQg
d2UgZG9uJ3QgcmVhbGx5IGV4cGxpY2l0bHkgaGFuZGxlIGl0IChsaWtlIHdlIHByb2JhYmx5IHNo
b3VsZCkKKyAgICAgICAgICBJdCdzIE9LIHRob3VnaCwgYmVjYXVzZSB3ZSBlbmQgdXAgY3JlYXRp
bmcgYSBudWxsIHBvc2l0aW9uIG9iamVjdCwgd2hpY2ggbWF5IG5vdCBoYXZlCisgICAgICAgICAg
YmVlbiB3aGF0IHdlIGludGVuZGVkLCBidXQgd2UgY2VydGFpbmx5IGRvbid0IGNyYXNoLgorICAg
ICAgICAqIGVkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KToK
KyAgICAgICAgICBSZW1vdmUgZGVhZCBjb2RlLCBpbnNlcnRpb25Qb3NpdGlvbi5ub2RlKCkgaXMg
YWxyZWFkeSBjaGVja2VkIHRvIGJlIG5vbi1udWxsIGFib3ZlLgorICAgICAgICAqIGVkaXRpbmcv
bWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFN0YXJ0TWFya3VwKToKKyAgICAg
ICAgICByZW1vdmVkIGRlYWQgY29kZSwgYW5ub3RhdGUgaXMgYWxyZWFkeSBrbm93biB0byBiZSB0
cnVlIGF0IHRoaXMgcG9pbnQgaW4gdGhlIGZpbGUKKyAgICAgICAgICAhYW5ub3RhdGUgd2FzIGNo
ZWNrZWQgYWJvdmUsIGFuZCBicmVhazsgd2FzIGNhbGxlZC4KKworMjAwOS0wMy0yNCAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKICAgICAgICAgQ1NTIGRlYWQgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwIGZyb20g
Q292ZXJ0eSBlcnJvcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0Njg0CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
IGIvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMjQ5ZDEyMi4uOTFiNjMzZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTY3OSw2ICs2NzksNyBAQCBib29sIENvbnRhaW5lck5v
ZGU6OmdldFVwcGVyTGVmdENvcm5lcihGbG9hdFBvaW50JiBwb2ludCkgY29uc3QKICAgICAgICAg
ICAgIGlmICghbykKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBB
U1NFUlQobyk7CiAKICAgICAgICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQo
KSkgewogICAgICAgICAgICAgcG9pbnQgPSBvLT5sb2NhbFRvQWJzb2x1dGUoKTsKQEAgLTcxNSw5
ICs3MTYsOCBAQCBib29sIENvbnRhaW5lck5vZGU6OmdldExvd2VyUmlnaHRDb3JuZXIoRmxvYXRQ
b2ludCYgcG9pbnQpIGNvbnN0CiAgICAgaWYgKCFyZW5kZXJlcigpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBSZW5kZXJPYmplY3QgKm8gPSByZW5kZXJlcigpOwotICAgIGlmICghby0+
aXNJbmxpbmUoKSB8fCBvLT5pc1JlcGxhY2VkKCkpCi0gICAgeworICAgIFJlbmRlck9iamVjdCog
byA9IHJlbmRlcmVyKCk7CisgICAgaWYgKCFvLT5pc0lubGluZSgpIHx8IG8tPmlzUmVwbGFjZWQo
KSkgewogICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94KG8pOwogICAgICAgICBw
b2ludCA9IG8tPmxvY2FsVG9BYnNvbHV0ZSgpOwogICAgICAgICBwb2ludC5tb3ZlKGJveC0+d2lk
dGgoKSwgYm94LT5oZWlnaHQoKSk7CkBAIC03MzEsOCArNzMxLDggQEAgYm9vbCBDb250YWluZXJO
b2RlOjpnZXRMb3dlclJpZ2h0Q29ybmVyKEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogICAgICAg
ICBlbHNlIGlmIChvLT5wcmV2aW91c1NpYmxpbmcoKSkKICAgICAgICAgICAgIG8gPSBvLT5wcmV2
aW91c1NpYmxpbmcoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBSZW5kZXJPYmplY3Qg
KnByZXYgPSAwOwotICAgICAgICAgICAgd2hpbGUoIXByZXYpIHsKKyAgICAgICAgICAgIFJlbmRl
ck9iamVjdCogcHJldiA9IDA7CisgICAgICAgICAgICB3aGlsZSAoIXByZXYpIHsKICAgICAgICAg
ICAgICAgICBvID0gby0+cGFyZW50KCk7CiAgICAgICAgICAgICAgICAgaWYgKCFvKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03NDAsNiArNzQwLDcgQEAgYm9vbCBDb250
YWluZXJOb2RlOjpnZXRMb3dlclJpZ2h0Q29ybmVyKEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgbyA9IHByZXY7CiAgICAgICAgIH0KKyAgICAgICAg
QVNTRVJUKG8pOwogICAgICAgICBpZiAoby0+aXNUZXh0KCkgfHwgby0+aXNSZXBsYWNlZCgpKSB7
CiAgICAgICAgICAgICBwb2ludCA9IG8tPmNvbnRhaW5lcigpLT5sb2NhbFRvQWJzb2x1dGUoKTsK
ICAgICAgICAgICAgIGlmIChvLT5pc1RleHQoKSkgewpAQCAtNzY0LDggKzc2NSw3IEBAIEludFJl
Y3QgQ29udGFpbmVyTm9kZTo6Z2V0UmVjdCgpIGNvbnN0CiAgICAgCiAgICAgLy8gSWYgd2UndmUg
Zm91bmQgb25lIGNvcm5lciwgYnV0IG5vdCB0aGUgb3RoZXIsCiAgICAgLy8gdGhlbiB3ZSBzaG91
bGQganVzdCByZXR1cm4gYSBwb2ludCBhdCB0aGUgY29ybmVyIHRoYXQgd2UgZGlkIGZpbmQuCi0g
ICAgaWYgKGZvdW5kVXBwZXJMZWZ0ICE9IGZvdW5kTG93ZXJSaWdodCkKLSAgICB7CisgICAgaWYg
KGZvdW5kVXBwZXJMZWZ0ICE9IGZvdW5kTG93ZXJSaWdodCkgewogICAgICAgICBpZiAoZm91bmRV
cHBlckxlZnQpCiAgICAgICAgICAgICBsb3dlclJpZ2h0ID0gdXBwZXJMZWZ0OwogICAgICAgICBl
bHNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggYTc4MzkxNy4uYjljOTc2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE0OSw4
ICsxMTQ5LDYgQEAgdm9pZCBEb2N1bWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdl
KQogICAgICAgICBTdHlsZUNoYW5nZSBjaCA9IGRpZmYoZG9jdW1lbnRTdHlsZS5nZXQoKSwgcmVu
ZGVyZXIoKS0+c3R5bGUoKSk7CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYmIGNoICE9IE5vQ2hh
bmdlKQogICAgICAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoZG9jdW1lbnRTdHlsZS5yZWxl
YXNlKCkpOwotICAgICAgICBpZiAoY2hhbmdlICE9IEZvcmNlKQotICAgICAgICAgICAgY2hhbmdl
ID0gY2g7CiAgICAgfQogCiAgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0g
bi0+bmV4dFNpYmxpbmcoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4
IGViMzEyNTQuLmQ0M2NjODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxl
Q29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApA
QCAtMTIxOSwxMyArMTIxOSwxMyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbmxp
bmVTdHlsZShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPgogICAgIFBvc2l0
aW9uIHMgPSBzdGFydDsKICAgICBQb3NpdGlvbiBlID0gZW5kOwogCi0gICAgTm9kZSAqbm9kZSA9
IHN0YXJ0Lm5vZGUoKTsKKyAgICBOb2RlKiBub2RlID0gc3RhcnQubm9kZSgpOwogICAgIHdoaWxl
IChub2RlKSB7Ci0gICAgICAgIE5vZGUgKm5leHQgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCk7
CisgICAgICAgIE5vZGUqIG5leHQgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKCk7CiAgICAgICAg
IGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkgJiYgbm9kZUZ1bGx5U2VsZWN0ZWQobm9kZSwgc3Rh
cnQsIGVuZCkpIHsKLSAgICAgICAgICAgIEhUTUxFbGVtZW50ICplbGVtID0gc3RhdGljX2Nhc3Q8
SFRNTEVsZW1lbnQgKj4obm9kZSk7Ci0gICAgICAgICAgICBOb2RlICpwcmV2ID0gZWxlbS0+dHJh
dmVyc2VQcmV2aW91c05vZGVQb3N0T3JkZXIoKTsKLSAgICAgICAgICAgIE5vZGUgKm5leHQgPSBl
bGVtLT50cmF2ZXJzZU5leHROb2RlKCk7CisgICAgICAgICAgICBIVE1MRWxlbWVudCogZWxlbSA9
IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICBOb2RlKiBwcmV2
ID0gZWxlbS0+dHJhdmVyc2VQcmV2aW91c05vZGVQb3N0T3JkZXIoKTsKKyAgICAgICAgICAgIE5v
ZGUqIG5leHQgPSBlbGVtLT50cmF2ZXJzZU5leHROb2RlKCk7CiAgICAgICAgICAgICBpZiAobV9z
dHlsZWRJbmxpbmVFbGVtZW50ICYmIGVsZW0tPmhhc1RhZ05hbWUobV9zdHlsZWRJbmxpbmVFbGVt
ZW50LT50YWdRTmFtZSgpKSkKICAgICAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuKGVsZW0pOwogICAgICAgICAgICAgaWYgKGlzSFRNTFN0eWxlTm9kZShzdHlsZS5nZXQo
KSwgZWxlbSkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5jcHAKaW5kZXggZWViOTE0YS4uMTZkNDI0OSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtMjUzLDcg
KzI1Myw3IEBAIHZvaWQgSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgp
CiAgICAgCiAgICAgLy8gU3BsaXQgYXQgcG9zIGlmIGluIHRoZSBtaWRkbGUgb2YgYSB0ZXh0IG5v
ZGUuCiAgICAgaWYgKGluc2VydGlvblBvc2l0aW9uLm5vZGUoKS0+aXNUZXh0Tm9kZSgpKSB7Ci0g
ICAgICAgIFRleHQgKnRleHROb2RlID0gc3RhdGljX2Nhc3Q8VGV4dCAqPihpbnNlcnRpb25Qb3Np
dGlvbi5ub2RlKCkpOworICAgICAgICBUZXh0KiB0ZXh0Tm9kZSA9IHN0YXRpY19jYXN0PFRleHQq
PihpbnNlcnRpb25Qb3NpdGlvbi5ub2RlKCkpOwogICAgICAgICBib29sIGF0RW5kID0gKHVuc2ln
bmVkKWluc2VydGlvblBvc2l0aW9uLm1fb2Zmc2V0ID49IHRleHROb2RlLT5sZW5ndGgoKTsKICAg
ICAgICAgaWYgKGluc2VydGlvblBvc2l0aW9uLm1fb2Zmc2V0ID4gMCAmJiAhYXRFbmQpIHsKICAg
ICAgICAgICAgIHNwbGl0VGV4dE5vZGUodGV4dE5vZGUsIGluc2VydGlvblBvc2l0aW9uLm1fb2Zm
c2V0KTsKQEAgLTMyMyw3ICszMjMsNiBAQCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICBpbnNlcnRpb25Qb3NpdGlvbiA9IFBvc2l0aW9uKGlu
c2VydGlvblBvc2l0aW9uLm5vZGUoKSwgMCk7CiAgICAgICAgIGlmICghaW5zZXJ0aW9uUG9zaXRp
b24uaXNSZW5kZXJlZENoYXJhY3RlcigpKSB7CiAgICAgICAgICAgICAvLyBDbGVhciBvdXQgYWxs
IHdoaXRlc3BhY2UgYW5kIGluc2VydCBvbmUgbm9uLWJyZWFraW5nIHNwYWNlCi0gICAgICAgICAg
ICBBU1NFUlQoaW5zZXJ0aW9uUG9zaXRpb24ubm9kZSgpKTsKICAgICAgICAgICAgIEFTU0VSVChp
bnNlcnRpb25Qb3NpdGlvbi5ub2RlKCktPmlzVGV4dE5vZGUoKSk7CiAgICAgICAgICAgICBBU1NF
UlQoIWluc2VydGlvblBvc2l0aW9uLm5vZGUoKS0+cmVuZGVyZXIoKSB8fCBpbnNlcnRpb25Qb3Np
dGlvbi5ub2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCktPmNvbGxhcHNlV2hpdGVTcGFjZSgpKTsK
ICAgICAgICAgICAgIGRlbGV0ZUluc2lnbmlmaWNhbnRUZXh0RG93bnN0cmVhbShpbnNlcnRpb25Q
b3NpdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDdjODRlOGYuLjdkZTUyODcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAu
Y3BwCkBAIC00MDgsOCArNDA4LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kU3RhcnRNYXJrdXAoVmVj
dG9yPFVDaGFyPiYgcmVzdWx0LCBjb25zdCBOb2RlICpub2RlLCBjb25zdCBSYW4KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgYm9vbCB1c2VSZW5kZXJlZFRleHQgPSAhZW5jbG9zaW5nTm9kZVdp
dGhUYWcoUG9zaXRpb24oY29uc3RfY2FzdDxOb2RlKj4obm9kZSksIDApLCBzZWxlY3RUYWcpOwog
ICAgICAgICAgICAgU3RyaW5nIG1hcmt1cCA9IGVzY2FwZUNvbnRlbnRUZXh0KHVzZVJlbmRlcmVk
VGV4dCA/IHJlbmRlcmVkVGV4dChub2RlLCByYW5nZSkgOiBzdHJpbmdWYWx1ZUZvclJhbmdlKG5v
ZGUsIHJhbmdlKSwgZmFsc2UpOwotICAgICAgICAgICAgaWYgKGFubm90YXRlKQotICAgICAgICAg
ICAgICAgIG1hcmt1cCA9IGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQobWFya3Vw
LCBzdGF0aWNfY2FzdDxjb25zdCBUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgbWFya3VwID0g
Y29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChtYXJrdXAsIHN0YXRpY19jYXN0PGNv
bnN0IFRleHQqPihub2RlKSk7CiAgICAgICAgICAgICBhcHBlbmQocmVzdWx0LCBtYXJrdXApOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="14284"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28903</attachid>
            <date>2009-03-24 13:12:34 -0700</date>
            <delta_ts>2009-03-24 14:20:00 -0700</delta_ts>
            <desc>Fix case where lBreak.obj-&gt;isBR() when lBreak.obj was NULL</desc>
            <filename>Fix-case-where-lBreak.obj-isBR-when-lBreak.obj-was-NULL.patch</filename>
            <type>text/plain</type>
            <size>1496</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NmI4Mjc1ZjRjZTdjZWY2ZmVhNmJjMWQ3NzM5Y2ViMzczMzNlNTAyOApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzM2ViZmZkLi4xOTk2OWZk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIxIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgRml4IGNhc2Ugd2hlcmUgbEJyZWFrLm9iai0+aXNCUigpIHdoZW4gbEJyZWFrLm9i
aiB3YXMgTlVMTAorCWh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4
NAorCisJSSBkb24ndCBoYXZlIGEgdGVzdCBjYXNlIHdoZXJlIHdlIHdlcmUgdGFraW5nIHRoZSB3
cm9uZyBwYXRoIGhlcmUKKwlIb3dldmVyLCBhZGRpbmcgYW4gQVNTRVJUKGxCcmVhay5vYmopIGJl
Zm9yZSB0aGlzIHVzYWdlIGNhdXNlZAorCW11bHRpcGxlIGJpZGkgdGVzdHMgdG8gZmFpbCwgc28g
bEJyZWFrLm9iaiBjYW4gYmUgbnVsbCBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL2JpZGku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZUJyZWFrKToK
KyAgICAgICAgICBsQnJlYWsub2JqIGNhbiBiZSBudWxsLCBzbyB3ZSBjYW4ndCBjYWxsIC0+aXNC
UigpIG9uIGl0IHVuY29uZGl0aW9uYWxseS4KKworMjAwOS0wMy0yNCAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
ICAgICAgICAgU3R5bGUgY2xlYW51cCBhbmQgZGVhZCBjb2RlIHJlbW92YWwgaW4gZG9tLCBlZGl0
aW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4
NAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9iaWRpLmNwcCBiL1dlYkNvcmUvcmVu
ZGVyaW5nL2JpZGkuY3BwCmluZGV4IDRhNmE0MmIuLjM3NjVkMTMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL2JpZGkuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL2JpZGkuY3BwCkBA
IC0yMDk4LDggKzIwOTgsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6ZmluZE5leHRM
aW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbHZlciwgYm9vbAogICAgIH0KIAogIGVu
ZDoKLQotICAgIGlmIChsQnJlYWsgPT0gcmVzb2x2ZXIucG9zaXRpb24oKSAmJiAhbEJyZWFrLm9i
ai0+aXNCUigpKSB7CisgICAgaWYgKGxCcmVhayA9PSByZXNvbHZlci5wb3NpdGlvbigpICYmICgh
bEJyZWFrLm9iaiB8fCAhbEJyZWFrLm9iai0+aXNCUigpKSkgewogICAgICAgICAvLyB3ZSBqdXN0
IGFkZCBhcyBtdWNoIGFzIHBvc3NpYmxlCiAgICAgICAgIGlmIChzdHlsZSgpLT53aGl0ZVNwYWNl
KCkgPT0gUFJFKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogRG9uJ3QgcmVhbGx5IHVuZGVyc3Rh
bmQgdGhpcyBjYXNlLgo=
</data>
<flag name="review"
          id="14285"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28904</attachid>
            <date>2009-03-24 13:12:37 -0700</date>
            <delta_ts>2009-03-25 13:13:27 -0700</delta_ts>
            <desc>Make TextTokenizer ASSERT that the buffer was freed</desc>
            <filename>Make-TextTokenizer-ASSERT-that-the-buffer-was-freed.patch</filename>
            <type>text/plain</type>
            <size>1882</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NzQ5MDAyODg2ZWVmZGE2YzAzNmU1YmJlZDA2MmViODVjYmI3MDAyZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTk2OWZkLi4xNWZjZDQx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgTWFrZSBUZXh0VG9rZW5pemVyIEFTU0VSVCB0aGF0IHRoZSBidWZmZXIgd2FzIGZy
ZWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4
NAorCisgICAgICAgICogbG9hZGVyL1RleHREb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VG9rZW5pemVyOjpUZXh0VG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
b2tlbml6ZXI6On5UZXh0VG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUb2tlbml6
ZXI6OmZpbmlzaCk6CisgICAgICAgICAgTWFrZSBpdCBjbGVhciBieSBhZGRpbmcgYSB+VGV4dFRv
a2VuaXplciB0aGF0IGZpbmlzaCgpIHdpbGwgYWx3YXlzIGJlIGNhbGxlZCBhbmQgdGhlIG1lbW9y
eSBuZXZlciBsZWFrZWQuCisKKzIwMDktMDMtMjQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEZp
eCBjYXNlIHdoZXJlIGxCcmVhay5vYmotPmlzQlIoKSB3aGVuIGxCcmVhay5vYmogd2FzIE5VTEwK
IAlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODQKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Rl
eHREb2N1bWVudC5jcHAKaW5kZXggMWU3ZWUzZi4uMGQ4NmMxYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1l
bnQuY3BwCkBAIC00MSw2ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBjbGFz
cyBUZXh0VG9rZW5pemVyIDogcHVibGljIFRva2VuaXplciB7CiBwdWJsaWM6CiAgICAgVGV4dFRv
a2VuaXplcihEb2N1bWVudCopOworICAgIHZpcnR1YWwgflRleHRUb2tlbml6ZXIoKTsKICAgICBU
ZXh0VG9rZW5pemVyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZShjb25zdCBTZWdtZW50ZWRTdHJpbmcmLCBib29sIGFwcGVuZERhdGEpOwpAQCAtOTEs
NyArOTIsMTMgQEAgVGV4dFRva2VuaXplcjo6VGV4dFRva2VuaXplcihIVE1MVmlld1NvdXJjZURv
Y3VtZW50KiBkb2MpCiAgICAgbV9zaXplID0gMjU0OwogICAgIG1fYnVmZmVyID0gc3RhdGljX2Nh
c3Q8VUNoYXIqPihmYXN0TWFsbG9jKHNpemVvZihVQ2hhcikgKiBtX3NpemUpKTsKICAgICBtX2Rl
c3QgPSBtX2J1ZmZlcjsKLX0gICAgCit9CisKK1RleHRUb2tlbml6ZXI6On5UZXh0VG9rZW5pemVy
KCkKK3sKKyAgICAvLyBmaW5pc2goKSBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCB0byBwcmV2ZW50
IGFueSBsZWFrcworICAgIEFTU0VSVCghbV9idWZmZXIpOworfQogCiB2b2lkIFRleHRUb2tlbml6
ZXI6OndyaXRlKGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgcywgYm9vbCkKIHsKQEAgLTE1Nyw3ICsx
NjQsOSBAQCB2b2lkIFRleHRUb2tlbml6ZXI6OmZpbmlzaCgpCiB7CiAgICAgbV9wcmVFbGVtZW50
ID0gMDsKICAgICBmYXN0RnJlZShtX2J1ZmZlcik7Ci0gICAgICAgIAorICAgIG1fYnVmZmVyID0g
MDsKKyAgICBtX2Rlc3QgPSAwOworCiAgICAgbV9kb2MtPmZpbmlzaGVkUGFyc2luZygpOwogfQog
Cg==
</data>
<flag name="review"
          id="14286"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28905</attachid>
            <date>2009-03-24 13:12:39 -0700</date>
            <delta_ts>2009-03-24 14:22:28 -0700</delta_ts>
            <desc>Move ASSERT(foo) to before where foo-&gt; is used</desc>
            <filename>Move-ASSERT-foo-to-before-where-foo-is-used.patch</filename>
            <type>text/plain</type>
            <size>3279</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OTMyNmFkZjhlM2Q4Y2Q0Zjg3ZmNiNGQ0YWM3MzRlMWFkNzJlOTI3NwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNWZjZDQxLi5lYzkxZDFi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDIxIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgTW92ZSBBU1NFUlQoZm9vKSB0byBiZWZvcmUgd2hlcmUgZm9vLT4gaXMgdXNlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODQKKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgICBNb3ZlIEFT
U0VSVHMgdG8gdGhlIHRvcCBvZiB0aGUgZnVuY3Rpb24sIGNvZGUgd2FzIHVzaW5nICJub2RlIiBi
ZWZvcmUgQVNTRVJUKG5vZGUpLCBvbmNlIEkgbW92ZWQKKyAgICAgICAgICBBU1NFUlQobm9kZSkg
dG8gdGhlIHRvcCBvZiB0aGUgZnVuY3Rpb24gaXQgbWFkZSBzZW5zZSB0byBtb3ZlIHRoZSByZXN0
IG9mIHRoZW0gdGhlcmUgdG9vLgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQpOgorICAg
ICAgICAgIG1vdmUgQVNTRVJUKG9iamVjdCkgdG8gKmJlZm9yZSogd2UgdXNlICJvYmplY3QiIDop
CisKKzIwMDktMDMtMjQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIE1ha2UgVGV4dFRva2VuaXpl
ciBBU1NFUlQgdGhhdCB0aGUgYnVmZmVyIHdhcyBmcmVlZAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODQKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGU3YjIyMDMuLjliMzJiYWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5j
cHAKQEAgLTk4LDYgKzk4LDE1IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiAKIHZvaWQgUGFz
dGVib2FyZDo6d3JpdGVJbWFnZShOb2RlKiBub2RlLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkKIHsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVy
KCkpOworICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc0ltYWdlKCkpOworICAgIFJlbmRl
ckltYWdlKiByZW5kZXJlciA9IHN0YXRpY19jYXN0PFJlbmRlckltYWdlKj4obm9kZS0+cmVuZGVy
ZXIoKSk7CisgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gc3RhdGljX2Nhc3Q8Q2FjaGVk
SW1hZ2UqPihyZW5kZXJlci0+Y2FjaGVkSW1hZ2UoKSk7CisgICAgQVNTRVJUKGNhY2hlZEltYWdl
KTsKKyAgICBJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKKyAgICBBU1NFUlQo
aW1hZ2UpOworCiAgICAgLy8gSWYgdGhlIGltYWdlIGlzIHdyYXBwZWQgaW4gYSBsaW5rLCB8dXJs
fCBwb2ludHMgdG8gdGhlIHRhcmdldCBvZiB0aGUKICAgICAvLyBsaW5rLiAgVGhpcyBpc24ndCB1
c2VmdWwgdG8gdXMsIHNvIGdldCB0aGUgYWN0dWFsIGltYWdlIFVSTC4KICAgICBBdG9taWNTdHJp
bmcgdXJsU3RyaW5nOwpAQCAtMTEzLDE2ICsxMjIsNiBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
SW1hZ2UoTm9kZSogbm9kZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAg
fQogICAgIEtVUkwgdXJsID0gdXJsU3RyaW5nLmlzRW1wdHkoKSA/IEtVUkwoKSA6IG5vZGUtPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKHBhcnNlVVJMKHVybFN0cmluZykpOwogCi0gICAgQVNTRVJU
KG5vZGUpOwotICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpKTsKLSAgICBBU1NFUlQobm9kZS0+
cmVuZGVyZXIoKS0+aXNJbWFnZSgpKTsKLQotICAgIFJlbmRlckltYWdlKiByZW5kZXJlciA9IHN0
YXRpY19jYXN0PFJlbmRlckltYWdlKj4obm9kZS0+cmVuZGVyZXIoKSk7Ci0gICAgQ2FjaGVkSW1h
Z2UqIGNhY2hlZEltYWdlID0gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZW5kZXJlci0+Y2Fj
aGVkSW1hZ2UoKSk7Ci0gICAgQVNTRVJUKGNhY2hlZEltYWdlKTsKLSAgICBJbWFnZSogaW1hZ2Ug
PSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKLSAgICBBU1NFUlQoaW1hZ2UpOwotCiAgICAgTmF0aXZl
SW1hZ2VTa2lhKiBiaXRtYXAgPSAwOwogI2lmICFQTEFURk9STShDRykKICAgICBiaXRtYXAgPSBp
bWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKaW5kZXggNmQ0M2U4NS4uZGQxNTRjNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdm9pZCBwcmVwYXJlVG9SZW5k
ZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJPYmplY3Q6OlBhaW50SW5m
byYgcGEKICAgICBVTlVTRURfUEFSQU0ocm9vdEZpbHRlcik7CiAjZW5kaWYKIAorICAgIEFTU0VS
VChvYmplY3QpOwogICAgIFNWR0VsZW1lbnQqIHN2Z0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxTVkdF
bGVtZW50Kj4ob2JqZWN0LT5ub2RlKCkpOwogICAgIEFTU0VSVChzdmdFbGVtZW50ICYmIHN2Z0Vs
ZW1lbnQtPmRvY3VtZW50KCkgJiYgc3ZnRWxlbWVudC0+aXNTdHlsZWQoKSk7Ci0gICAgQVNTRVJU
KG9iamVjdCk7CiAKICAgICBTVkdTdHlsZWRFbGVtZW50KiBzdHlsZWRFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8U1ZHU3R5bGVkRWxlbWVudCo+KHN2Z0VsZW1lbnQpOwogICAgIGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsK
</data>
<flag name="review"
          id="14287"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28906</attachid>
            <date>2009-03-24 13:12:42 -0700</date>
            <delta_ts>2009-03-24 14:14:07 -0700</delta_ts>
            <desc>Remove dead code and style cleanup</desc>
            <filename>Remove-dead-code-and-style-cleanup.patch</filename>
            <type>text/plain</type>
            <size>6350</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YWE4ZDk5MTFhYWJiYzZmNmRkNDU4YTNjMWY0YTBlY2JmMzMzZmFmMQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYzkxZDFiLi5hYzg4ZmE3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDI5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgUmVtb3ZlIGRlYWQgY29kZSBhbmQgc3R5bGUgY2xlYW51cAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2ODQKKworICAgICAgICAqIGh0
bWwvQ2FudmFzU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzU3R5bGU6OkNhbnZh
c1N0eWxlKToKKyAgICAgICAgICBDb3ZlcnR5IHdhcyBhbm5veWVkIHRoYXQgd2UgZGlkbid0IGlu
aXRpYWxpemUgYWxsIG9mIG91ciBtZW1iZXJzLiAgSSBhZ3JlZSwgYnV0IEkgZGlkbid0CisgICAg
ICAgICAgd2FudCB0byBwYXN0ZSBhbGwgOCBtZW1iZXJzIGVhY2ggdGltZSwgc28gSSBqdXN0IGNs
ZWFuZWQgdXAgdGhlIGV4aXN0aW5nIGNvbnN0cnVjdG9ycyBhbmQgbGVmdCB0aGVtLgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29u
dHJvbGxlcjo6c2V0Rm9jdXNlZE5vZGUpOgorICAgICAgICAgICJub2RlIiB3YXMgY2hlY2tlZCBq
dXN0IGFib3ZlIGFuZCBpcyBhbHJlYWR5IGtub3duIHRvIGJlIG5vbi1udWxsCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjppbnNlcnRPbmx5VGhpc0xheWVyKToKKyAgICAgICAgICBXZSB3ZXJlIGFscmVhZHkgdXNpbmcg
cGFyZW50TGF5ZXIgdy9vIGEgTlVMTCBjaGVjayBhYm92ZSwgc28ganVzdCBhZGQgYW4gZXhwbGlj
aXQgQVNTRVJUIGFuZCB1c2UgaXQgdy9vIE5VTEwgY2hlY2sKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpyZXNpemUpOgorICAgICAgICAgIGVsZW1lbnQgaXMgYWxyZWFkeSBBU1NFUlRl
ZCBhYm92ZSwgbm8gbmVlZCB0byBudWxsIGNoZWNrIGl0IGhlcmUKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
U2VjdGlvbjo6YWRkQ2VsbCk6CisgICAgICAgICAgY3VycmVudENlbGwuY2VsbCB3YXMganVzdCBh
c3NpZ25lZCB0byB0aGUgdmFsdWUgImNlbGwiIHdoaWNoIGlzIGtub3duIHRvIGJlIG5vbi1udWxs
LCBubyBuZWVkIHRvIG51bGwgY2hlY2sgYWdhaW4uCisKKzIwMDktMDMtMjQgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCiAgICAgICAgIE1vdmUgQVNTRVJUKGZvbykgdG8gYmVmb3JlIHdoZXJlIGZvby0+IGlzIHVz
ZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Njg0
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAgYi9XZWJDb3JlL2h0
bWwvQ2FudmFzU3R5bGUuY3BwCmluZGV4IGQzMjdiZjguLmQ4OWJiNDcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxl
LmNwcApAQCAtNzgsMTIgKzc4LDIxIEBAIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShmbG9hdCBn
cmF5TGV2ZWwsIGZsb2F0IGFscGhhKQogfQogCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoZmxv
YXQgciwgZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSkKLSAgICA6IG1fdHlwZShSR0JBKSwgbV9h
bHBoYShhKSwgbV9yZWQociksIG1fZ3JlZW4oZyksIG1fYmx1ZShiKQorICAgIDogbV90eXBlKFJH
QkEpCisgICAgLCBtX2FscGhhKGEpCisgICAgLCBtX3JlZChyKQorICAgICwgbV9ncmVlbihnKQor
ICAgICwgbV9ibHVlKGIpCiB7CiB9CiAKIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKQotICAgIDogbV90eXBlKENNWUtB
KSwgbV9hbHBoYShhKSwgbV9jeWFuKGMpLCBtX21hZ2VudGEobSksIG1feWVsbG93KHkpLCBtX2Js
YWNrKGspCisgICAgOiBtX3R5cGUoQ01ZS0EpCisgICAgLCBtX2FscGhhKGEpCisgICAgLCBtX2N5
YW4oYykKKyAgICAsIG1fbWFnZW50YShtKQorICAgICwgbV95ZWxsb3coeSkKKyAgICAsIG1fYmxh
Y2soaykKIHsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA4ZjAwOGE4Li45NzYw
YjNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMjYwLDkgKzI2MCw5IEBAIGJvb2wg
Rm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkTm9kZShOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEZy
YW1lPiBuZXdGb2N1c2VkRnJhCiAgICAgICAgIG1fcGFnZS0+ZWRpdG9yQ2xpZW50KCktPnNldElu
cHV0TWV0aG9kU3RhdGUoZmFsc2UpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
Ci0gICAgUmVmUHRyPERvY3VtZW50PiBuZXdEb2N1bWVudCA9IG5vZGUgPyBub2RlLT5kb2N1bWVu
dCgpIDogMDsKLSAgICAKKworICAgIFJlZlB0cjxEb2N1bWVudD4gbmV3RG9jdW1lbnQgPSBub2Rl
LT5kb2N1bWVudCgpOworCiAgICAgaWYgKG5ld0RvY3VtZW50ICYmIG5ld0RvY3VtZW50LT5mb2N1
c2VkTm9kZSgpID09IG5vZGUpIHsKICAgICAgICAgbV9wYWdlLT5lZGl0b3JDbGllbnQoKS0+c2V0
SW5wdXRNZXRob2RTdGF0ZShub2RlLT5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNmNhOTE3NC4uZWE3
YjI3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODg2LDE1ICs4ODYsMTUgQEAg
dm9pZCBSZW5kZXJMYXllcjo6aW5zZXJ0T25seVRoaXNMYXllcigpCiAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gY29ubmVjdCBvdXJzZWx2ZXMgd2hlbiBvdXIgcmVuZGVyZXIoKSBoYXMgYSBwYXJlbnQu
CiAgICAgICAgIC8vIEZpbmQgb3VyIGVuY2xvc2luZ0xheWVyIGFuZCBhZGQgb3Vyc2VsdmVzLgog
ICAgICAgICBSZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKS0+
ZW5jbG9zaW5nTGF5ZXIoKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudExheWVyKTsKICAgICAgICAg
UmVuZGVyTGF5ZXIqIGJlZm9yZUNoaWxkID0gcGFyZW50TGF5ZXItPnJlZmxlY3Rpb25MYXllcigp
ICE9IHRoaXMgPyByZW5kZXJlcigpLT5wYXJlbnQoKS0+ZmluZE5leHRMYXllcihwYXJlbnRMYXll
ciwgcmVuZGVyZXIoKSkgOiAwOwotICAgICAgICBpZiAocGFyZW50TGF5ZXIpCi0gICAgICAgICAg
ICBwYXJlbnRMYXllci0+YWRkQ2hpbGQodGhpcywgYmVmb3JlQ2hpbGQpOworICAgICAgICBwYXJl
bnRMYXllci0+YWRkQ2hpbGQodGhpcywgYmVmb3JlQ2hpbGQpOwogICAgIH0KLSAgICAKKwogICAg
IC8vIFJlbW92ZSBhbGwgZGVzY2VuZGFudCBsYXllcnMgZnJvbSB0aGUgaGllcmFyY2h5IGFuZCBh
ZGQgdGhlbSB0byB0aGUgbmV3IHBvc2l0aW9uLgogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjdXJy
ID0gcmVuZGVyZXIoKS0+Zmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dFNpYmxp
bmcoKSkKICAgICAgICAgY3Vyci0+bW92ZUxheWVycyhtX3BhcmVudCwgdGhpcyk7Ci0gICAgICAg
IAorCiAgICAgLy8gQ2xlYXIgb3V0IGFsbCB0aGUgY2xpcCByZWN0cy4KICAgICBjbGVhckNsaXBS
ZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCk7CiB9CkBAIC0xMjg3LDcgKzEyODcsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldnQsIGNvbnN0
IEludFNpemUmIG9sZE9mZnNldAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKICAgICBpZiAoZGlm
ZmVyZW5jZS53aWR0aCgpKSB7Ci0gICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmlzRm9y
bUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xF
bGVtZW50KCkpIHsKICAgICAgICAgICAgIC8vIE1ha2UgaW1wbGljaXQgbWFyZ2lucyBmcm9tIHRo
ZSB0aGVtZSBleHBsaWNpdCAoc2VlIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTQ3PikuCiAgICAgICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlN
YXJnaW5MZWZ0LCBTdHJpbmc6Om51bWJlcihyZW5kZXJlci0+bWFyZ2luTGVmdCgpIC8gem9vbUZh
Y3RvcikgKyAicHgiLCBmYWxzZSwgZWMpOwogICAgICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5TWFyZ2luUmlnaHQsIFN0cmluZzo6bnVtYmVyKHJlbmRlcmVyLT5tYXJnaW5S
aWdodCgpIC8gem9vbUZhY3RvcikgKyAicHgiLCBmYWxzZSwgZWMpOwpAQCAtMTI5OSw3ICsxMjk5
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZ0LCBjb25zdCBJbnRTaXplJiBvbGRPZmZzZXQKICAgICB9CiAKICAgICBpZiAoZGlmZmVyZW5j
ZS5oZWlnaHQoKSkgewotICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5pc0Zvcm1Db250
cm9sRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChlbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVu
dCgpKSB7CiAgICAgICAgICAgICAvLyBNYWtlIGltcGxpY2l0IG1hcmdpbnMgZnJvbSB0aGUgdGhl
bWUgZXhwbGljaXQgKHNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTU0Nz4pLgogICAgICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5TWFyZ2lu
VG9wLCBTdHJpbmc6Om51bWJlcihyZW5kZXJlci0+bWFyZ2luVG9wKCkgLyB6b29tRmFjdG9yKSAr
ICJweCIsIGZhbHNlLCBlYyk7CiAgICAgICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHlNYXJnaW5Cb3R0b20sIFN0cmluZzo6bnVtYmVyKHJlbmRlcmVyLT5tYXJnaW5Cb3R0b20o
KSAvIHpvb21GYWN0b3IpICsgInB4IiwgZmFsc2UsIGVjKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwCmluZGV4IDNmNTg1MDYuLmIwMzczOWEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgUmVu
ZGVyVGFibGVTZWN0aW9uOjphZGRDZWxsKFJlbmRlclRhYmxlQ2VsbCogY2VsbCwgUmVuZGVyVGFi
bGVSb3cqIHJvdykKIAogICAgICAgICBmb3IgKGludCByID0gMDsgciA8IHJTcGFuOyByKyspIHsK
ICAgICAgICAgICAgIENlbGxTdHJ1Y3QmIGMgPSBjZWxsQXQobV9jUm93ICsgciwgbV9jQ29sKTsK
LSAgICAgICAgICAgIGlmIChjdXJyZW50Q2VsbC5jZWxsICYmICFjLmNlbGwpCisgICAgICAgICAg
ICBpZiAoIWMuY2VsbCkKICAgICAgICAgICAgICAgICBjLmNlbGwgPSBjdXJyZW50Q2VsbC5jZWxs
OwogICAgICAgICAgICAgaWYgKGN1cnJlbnRDZWxsLmluQ29sU3BhbikKICAgICAgICAgICAgICAg
ICBjLmluQ29sU3BhbiA9IHRydWU7CkBAIC0yNTQsMTAgKzI1NCw4IEBAIHZvaWQgUmVuZGVyVGFi
bGVTZWN0aW9uOjphZGRDZWxsKFJlbmRlclRhYmxlQ2VsbCogY2VsbCwgUmVuZGVyVGFibGVSb3cq
IHJvdykKICAgICAgICAgY3VycmVudENlbGwuY2VsbCA9IDA7CiAgICAgICAgIGN1cnJlbnRDZWxs
LmluQ29sU3BhbiA9IHRydWU7CiAgICAgfQotICAgIGlmIChjZWxsKSB7Ci0gICAgICAgIGNlbGwt
PnNldFJvdyhtX2NSb3cpOwotICAgICAgICBjZWxsLT5zZXRDb2wodGFibGUoKS0+ZWZmQ29sVG9D
b2woY29sKSk7Ci0gICAgfQorICAgIGNlbGwtPnNldFJvdyhtX2NSb3cpOworICAgIGNlbGwtPnNl
dENvbCh0YWJsZSgpLT5lZmZDb2xUb0NvbChjb2wpKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZVNl
Y3Rpb246OnNldENlbGxXaWR0aHMoKQo=
</data>
<flag name="review"
          id="14288"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28933</attachid>
            <date>2009-03-25 10:19:18 -0700</date>
            <delta_ts>2009-03-25 13:13:03 -0700</delta_ts>
            <desc>CSS dead code removal and cleanup from Coverty errors</desc>
            <filename>CSS-dead-code-removal-and-cleanup-from-Coverty-errors.patch</filename>
            <type>text/plain</type>
            <size>10529</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YTIxYzBlMDU2YzllZDQ2OTY4Yzk5ZDIwMzcxNzIwNDYyYmJhOTkyZApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5N2Y5M2Y0Li5mMjFmYjJl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMiw2ICsyLDMwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
KyAgICAgICAgQ1NTIGRlYWQgY29kZSByZW1vdmFsIGFuZCBjbGVhbnVwIGZyb20gQ292ZXJ0eSBl
cnJvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
Njg0CisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgICBFdmVyeSBv
dGhlciBwbGFjZSBpbiB0aGUgY29kZSB3ZSBjaGVjayBzZXR0aW5ncygpIGZvciBOVUxMLCBzbyBJ
IG1hZGUgdGhlc2UgcGxhY2VzCisgICAgICAgICAgY2hlY2sgdG9vLCBldmVuIHRob3VnaCB3ZSBz
aG91bGQgbmV2ZXIgYmUgcmVzb2x2aW5nIHN0eWxlIGFnYWluc3QgYSBkb2N1bWVudCB3aGljaCBo
YXMKKyAgICAgICAgICBubyBmcmFtZSAod2hpY2ggSSBiZWxpZXZlIGlzIHRoZSBvbmx5IHRpbWUg
c2V0dGluZ3MoKSBjYW4gYmUgbnVsbCkKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpzdHlsZVNoZWV0Q2hhbmdlZCk6Cisg
ICAgICAgICAgUmVtb3ZpbmcgZGVhZCBjb2RlLCAicm9vdCIgY2FuIG5ldmVyIGJlIG51bGwgaGVy
ZS4KKyAgICAgICAgKiBjc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb2xvckZyb21TVkdDb2xvckNTU1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5U1ZHUHJvcGVydHkpOgorICAgICAgICAgIEV4dHJhIHJldHVybnMg
aW4gdGhlIG9sZCBtYWNyb3MgY2F1c2VkIGRlYWQgY29kZS4gIFJlbW92aW5nIHRoZSBvbGQgbWFj
cm9zIGFuZCB1c2UgbW9kZXJuCisgICAgICAgICAgb25lcyBpbnN0ZWFkLiA6KQorICAgICAgICAg
IEV4dHJhIG51bGwgY2hlY2tzIHRvIHZhbHVlIHdlcmUgbm90IG5lZWRlZC4gIEFkZGVkIGFuIEFT
U0VSVCBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbgorICAgICAgICAgIHRvIG1ha2UgaXQgY2xl
YXIgdGhhdCB2YWx1ZSB3aWxsIG5ldmVyIGJlIE5VTEwuCisgICAgICAgICAgQWRkZWQgY29sb3JG
cm9tU1ZHQ29sb3JDU1NWYWx1ZSB0byBjbGVhbiB1cCB0aGUgY29kZSBhIGxpdHRsZS4KKworMjAw
OS0wMy0yNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgRm9udCBmYWxsYmFjayBjbGVhbnVwIGFu
ZCBhZGRlZCBBU1NFUlQgZm9yIEdseXBoUGFnZVRyZWVOb2RlCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY4NAogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCmluZGV4IDU0YzYyYTAuLmQ1NzM4ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBA
IC00MzM4LDYgKzQzMzgsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHko
aW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAgICAgbV9mb250RGlydHkgPSB0
cnVlOwogICAgICAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzID0gbV9jaGVja2VyLm1fZG9jdW1lbnQtPnNldHRpbmdzKCk7CisgICAgICAg
ICAgICBBU1NFUlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNvbHV0aW9u
LCB0aGlzIGRvY3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1cyBoYXZl
IHNldHRpbmdzCisgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIEZvbnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CiAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246
OlN0YW5kYXJkRmFtaWx5KTsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJp
bmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKQEAgLTQzNjQsNiArNDM2Nyw5
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVl
ICp2YWx1ZSkKICAgICAgICAgICAgIGlmIChmb250RGVzY3JpcHRpb24uaXNBYnNvbHV0ZVNpemUo
KSkgewogICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVuZGVyaW5nIG1vZGUgYW5k
IHByaW50ZXIgZm9udCBzZXR0aW5ncyBhcmUgdXBkYXRlZC4KICAgICAgICAgICAgICAgICBTZXR0
aW5ncyogc2V0dGluZ3MgPSBtX2NoZWNrZXIubV9kb2N1bWVudC0+c2V0dGluZ3MoKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoc2V0dGluZ3MpOyAvLyBJZiB3ZSdyZSBkb2luZyBzdHlsZSByZXNv
bHV0aW9uLCB0aGlzIGRvY3VtZW50IHNob3VsZCBhbHdheXMgYmUgaW4gYSBmcmFtZSBhbmQgdGh1
cyBoYXZlIHNldHRpbmdzCisgICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5ncykKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRS
ZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICAgICAgICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQobV9jaGVja2VyLm1fZG9jdW1l
bnQtPnByaW50aW5nKCkpOwogICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U1N0eWxlU2hlZXQuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggODAx
ZmUxYi4uY2U1MGFmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2
b2lkIENTU1N0eWxlU2hlZXQ6OnN0eWxlU2hlZXRDaGFuZ2VkKCkKICAgICBTdHlsZUJhc2UqIHJv
b3QgPSB0aGlzOwogICAgIHdoaWxlIChTdHlsZUJhc2UqIHBhcmVudCA9IHJvb3QtPnBhcmVudCgp
KQogICAgICAgICByb290ID0gcGFyZW50OwotICAgIERvY3VtZW50KiBkb2N1bWVudFRvVXBkYXRl
ID0gKHJvb3QgJiYgcm9vdC0+aXNDU1NTdHlsZVNoZWV0KCkpID8gc3RhdGljX2Nhc3Q8Q1NTU3R5
bGVTaGVldCo+KHJvb3QpLT5kb2MoKSA6IDA7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50VG9VcGRh
dGUgPSByb290LT5pc0NTU1N0eWxlU2hlZXQoKSA/IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQq
Pihyb290KS0+ZG9jKCkgOiAwOwogICAgIAogICAgIC8qIEZJWE1FOiBXZSBkb24ndCBuZWVkIHRv
IGRvIGV2ZXJ5dGhpbmcgdXBkYXRlU3R5bGVTZWxlY3RvciBkb2VzLAogICAgICAqIGJhc2ljYWxs
eSB3ZSBqdXN0IG5lZWQgdG8gcmVjcmVhdGUgdGhlIGRvY3VtZW50J3Mgc2VsZWN0b3Igd2l0aCB0
aGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvV2Vi
Q29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMzRkOTgxYy4uZDMyNmRkZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTU5LDI1ICs1OSw2IEBAIEhBTkRM
RV9JTkhFUklUKHByb3AsIFByb3ApIFwKIGVsc2UgaWYgKGlzSW5pdGlhbCkgXAogICAgIHN2Z3N0
eWxlLT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwjI1Byb3AoKSk7CiAKLSNkZWZp
bmUgSEFORExFX0lOSEVSSVRfQ09ORChwcm9wSUQsIHByb3AsIFByb3ApIFwKLWlmIChpZCA9PSBw
cm9wSUQpIFwKLXtcCi0gICAgc3Znc3R5bGUtPnNldCMjUHJvcChtX3BhcmVudFN0eWxlLT5zdmdT
dHlsZSgpLT5wcm9wKCkpO1wKLSAgICByZXR1cm47XAotfQotCi0jZGVmaW5lIEhBTkRMRV9JTklU
SUFMX0NPTkQocHJvcElELCBQcm9wKSBcCi1pZiAoaWQgPT0gcHJvcElEKSBcCi17XAotICAgIHN2
Z3N0eWxlLT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwjI1Byb3AoKSk7XAotICAg
IHJldHVybjtcCi19Ci0KLSNkZWZpbmUgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKHBy
b3BJRCwgUHJvcCwgVmFsdWUpIFwKLWlmIChpZCA9PSBwcm9wSUQpIHsgXAotICAgIHN2Z3N0eWxl
LT5zZXQjI1Byb3AoU1ZHUmVuZGVyU3R5bGU6OmluaXRpYWwjI1ZhbHVlKCkpOyBcCi0gICAgcmV0
dXJuOyBcCi19CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTExLDggKzkyLDIxIEBAIHN0
YXRpYyBpbnQgYW5nbGVUb0dseXBoT3JpZW50YXRpb24oZmxvYXQgYW5nbGUpCiAgICAgcmV0dXJu
IC0xOwogfQogCitzdGF0aWMgQ29sb3IgY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZShDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBBU1NFUlQodmFsdWUtPmlzU1ZH
Q29sb3IoKSk7CisgICAgU1ZHQ29sb3IqIGMgPSBzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVl
KTsKKyAgICBDb2xvciBjb2xvcjsKKyAgICBpZiAoYy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29sb3I6
OlNWR19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQorICAgICAgICBjb2xvciA9IHN0eWxlLT5jb2xv
cigpOworICAgIGVsc2UKKyAgICAgICAgY29sb3IgPSBjLT5jb2xvcigpOworICAgIHJldHVybiBj
b2xvcjsKK30KKwogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBp
ZCwgQ1NTVmFsdWUqIHZhbHVlKQogeworICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gMDsKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKSkKICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKQEAgLTE2OCwxNSArMTYyLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlLZXJuaW5nOgogICAgICAgICB7Ci0gICAgICAgICAg
ICBpZiAoaXNJbmhlcml0KSB7Ci0gICAgICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQ09ORChD
U1NQcm9wZXJ0eUtlcm5pbmcsIGtlcm5pbmcsIEtlcm5pbmcpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoaXNJbml0aWFsKSB7Ci0g
ICAgICAgICAgICAgICAgSEFORExFX0lOSVRJQUxfQ09ORF9XSVRIX1ZBTFVFKENTU1Byb3BlcnR5
S2VybmluZywgS2VybmluZywgS2VybmluZykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0KKyAgICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGtlcm5p
bmcsIEtlcm5pbmcpOwogICAgICAgICAgICAgc3Znc3R5bGUtPnNldEtlcm5pbmcocHJpbWl0aXZl
VmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTI1NCw1MiArMjQwLDM3
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlTVkdQcm9wZXJ0eShpbnQgaWQsIENTU1Zh
bHVlKiB2YWx1ZSkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZpbGw6CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGZpbGxQYWludCwgRmlsbFBhaW50
KQotICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSAmJiB2YWx1ZSkgewotICAgICAgICAg
ICAgICAgIFNWR1BhaW50ICpwYWludCA9IHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUpOwot
ICAgICAgICAgICAgICAgIGlmIChwYWludCkKLSAgICAgICAgICAgICAgICAgICAgc3Znc3R5bGUt
PnNldEZpbGxQYWludChwYWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKyAgICAg
ICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgICAgICAgICAgICAgIHN2Z3N0eWxl
LT5zZXRGaWxsUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZToKICAg
ICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tlUGFp
bnQsIFN0cm9rZVBhaW50KQotICAgICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSAmJiB2YWx1
ZSkgewotICAgICAgICAgICAgICAgIFNWR1BhaW50ICpwYWludCA9IHN0YXRpY19jYXN0PFNWR1Bh
aW50Kj4odmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChwYWludCkKLSAgICAgICAgICAgICAg
ICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVBhaW50KHBhaW50KTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgICAgICAgICAgICAgIHN2Z3N0
eWxlLT5zZXRTdHJva2VQYWludChzdGF0aWNfY2FzdDxTVkdQYWludCo+KHZhbHVlKSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlTdHJva2VXaWR0aDoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwoc3Ryb2tlV2lkdGgsIFN0cm9rZVdpZHRoKQotICAgICAgICAgICAgaWYg
KCFwcmltaXRpdmVWYWx1ZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAg
ICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZVdpZHRoKHByaW1pdGl2ZVZhbHVlKTsKKyAgICAg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0
U3Ryb2tlV2lkdGgocHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVN0cm9rZURhc2hhcnJheToKICAgICAgICAgewog
ICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tlRGFzaEFycmF5LCBT
dHJva2VEYXNoQXJyYXkpCi0gICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlICYmIHZhbHVl
KSB7Ci0gICAgICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBkYXNoZXMgPSBzdGF0aWNfY2FzdDxD
U1NWYWx1ZUxpc3QqPih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGRhc2hlcykKLSAgICAg
ICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZURhc2hBcnJheShkYXNoZXMpOwotICAg
ICAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3Qo
KSkKKyAgICAgICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlRGFzaEFycmF5KHN0YXRpY19j
YXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5U3Ryb2tlRGFzaG9mZnNldDoKICAgICAgICAgewog
ICAgICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoc3Ryb2tlRGFzaE9mZnNldCwg
U3Ryb2tlRGFzaE9mZnNldCkKLSAgICAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBzdmdzdHlsZS0+c2V0U3Ryb2tlRGFz
aE9mZnNldChwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUp
CisgICAgICAgICAgICAgICAgc3Znc3R5bGUtPnNldFN0cm9rZURhc2hPZmZzZXQocHJpbWl0aXZl
VmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eUZpbGxPcGFjaXR5OgpAQCAtNDkxLDM1ICs0NjIsMTMgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAgICAg
ICBjYXNlIENTU1Byb3BlcnR5U3RvcENvbG9yOgogICAgICAgICB7CiAgICAgICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTChzdG9wQ29sb3IsIFN0b3BDb2xvcik7Ci0KLSAgICAgICAg
ICAgIFNWR0NvbG9yKiBjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSk7Ci0gICAgICAg
ICAgICBpZiAoIWMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxlU2VsZWN0b3I6OmFw
cGx5UHJvcGVydHkoaWQsIHZhbHVlKTsKLQotICAgICAgICAgICAgQ29sb3IgY29sOwotICAgICAg
ICAgICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR0NvbG9yOjpTVkdfQ09MT1JUWVBFX0NVUlJF
TlRDT0xPUikKLSAgICAgICAgICAgICAgICBjb2wgPSBtX3N0eWxlLT5jb2xvcigpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7Ci0KLSAgICAgICAg
ICAgIHN2Z3N0eWxlLT5zZXRTdG9wQ29sb3IoY29sKTsKKyAgICAgICAgICAgIHN2Z3N0eWxlLT5z
ZXRTdG9wQ29sb3IoY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZSh2YWx1ZSwgbV9zdHlsZS5nZXQo
KSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5TGlnaHRpbmdDb2xvcjoKICAgICAgICAgewogICAgICAgICAgICAgSEFORExFX0lOSEVSSVRf
QU5EX0lOSVRJQUwobGlnaHRpbmdDb2xvciwgTGlnaHRpbmdDb2xvcik7Ci0KLSAgICAgICAgICAg
IFNWR0NvbG9yKiBjID0gc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSk7Ci0gICAgICAgICAg
ICBpZiAoIWMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaWQsIHZhbHVlKTsKLQotICAgICAgICAgICAgQ29sb3IgY29sOwotICAgICAgICAg
ICAgaWYgKGMtPmNvbG9yVHlwZSgpID09IFNWR0NvbG9yOjpTVkdfQ09MT1JUWVBFX0NVUlJFTlRD
T0xPUikKLSAgICAgICAgICAgICAgICBjb2wgPSBtX3N0eWxlLT5jb2xvcigpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGNvbCA9IGMtPmNvbG9yKCk7Ci0KLSAgICAgICAgICAg
IHN2Z3N0eWxlLT5zZXRMaWdodGluZ0NvbG9yKGNvbCk7CisgICAgICAgICAgICBzdmdzdHlsZS0+
c2V0TGlnaHRpbmdDb2xvcihjb2xvckZyb21TVkdDb2xvckNTU1ZhbHVlKHZhbHVlLCBtX3N0eWxl
LmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENT
U1Byb3BlcnR5Rmxvb2RPcGFjaXR5OgpAQCAtNTQyLDIxICs0OTEsMTEgQEAgdm9pZCBDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVNWR1Byb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUqIHZhbHVlKQogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGbG9vZENvbG9yOgogICAgICAgICB7Ci0g
ICAgICAgICAgICBDb2xvciBjb2w7Ci0gICAgICAgICAgICBpZiAoaXNJbml0aWFsKQotICAgICAg
ICAgICAgICAgIGNvbCA9IFNWR1JlbmRlclN0eWxlOjppbml0aWFsRmxvb2RDb2xvcigpOwotICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgU1ZHQ29sb3IgKmMgPSBzdGF0aWNfY2Fz
dDxTVkdDb2xvcio+KHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIWMpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGlkLCB2YWx1
ZSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYy0+Y29sb3JUeXBlKCkgPT0gU1ZHQ29sb3I6OlNW
R19DT0xPUlRZUEVfQ1VSUkVOVENPTE9SKQotICAgICAgICAgICAgICAgICAgICBjb2wgPSBtX3N0
eWxlLT5jb2xvcigpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
Y29sID0gYy0+Y29sb3IoKTsKKyAgICAgICAgICAgIGlmIChpc0luaXRpYWwpIHsKKyAgICAgICAg
ICAgICAgICBzdmdzdHlsZS0+c2V0Rmxvb2RDb2xvcihTVkdSZW5kZXJTdHlsZTo6aW5pdGlhbEZs
b29kQ29sb3IoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBzdmdzdHlsZS0+c2V0Rmxvb2RDb2xvcihjb2wpOworICAgICAgICAgICAgc3Zn
c3R5bGUtPnNldEZsb29kQ29sb3IoY29sb3JGcm9tU1ZHQ29sb3JDU1NWYWx1ZSh2YWx1ZSwgbV9z
dHlsZS5nZXQoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOgo=
</data>
<flag name="review"
          id="14305"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>