<?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>53143</bug_id>
          
          <creation_ts>2011-01-25 16:35:42 -0800</creation_ts>
          <short_desc>Add IntRectHash</short_desc>
          <delta_ts>2011-01-25 19:30:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340009</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-25 16:35:42 -0800</bug_when>
    <thetext>To use IntRect as a key in a rect-&gt;PDF cache of page previews in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340011</commentid>
    <comment_count>1</comment_count>
      <attachid>80145</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-25 16:37:09 -0800</bug_when>
    <thetext>Created attachment 80145
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340014</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-25 16:40:14 -0800</bug_when>
    <thetext>Attachment 80145 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/IntRectHash.h:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/graphics/IntRectHash.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/platform/graphics/IntRectHash.h:48:  More than one command on the same line  [whitespace/newline] [4]
Source/WebCore/platform/graphics/IntSizeHash.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/platform/graphics/IntSizeHash.h:34:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 5 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340077</commentid>
    <comment_count>3</comment_count>
      <attachid>80145</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-25 18:18:47 -0800</bug_when>
    <thetext>Comment on attachment 80145
proposed patch

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

&gt;&gt; Source/WebCore/platform/graphics/IntRectHash.h:30
&gt;&gt; +#include &quot;IntPointHash.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

I agree with the style bot.

&gt;&gt; Source/WebCore/platform/graphics/IntRectHash.h:37
&gt;&gt; +    template&lt;&gt; struct IntHash&lt;WebCore::IntRect&gt; {
&gt; 
&gt; Code inside a namespace should not be indented.  [whitespace/indent] [4]

I agree with the style bot.

&gt;&gt; Source/WebCore/platform/graphics/IntRectHash.h:48
&gt;&gt; +    template&lt;&gt; struct DefaultHash&lt;WebCore::IntRect&gt; { typedef IntHash&lt;WebCore::IntRect&gt; Hash; };
&gt; 
&gt; More than one command on the same line  [whitespace/newline] [4]

This is a false positive from the style bot.

&gt;&gt; Source/WebCore/platform/graphics/IntSizeHash.h:29
&gt;&gt; +    template&lt;&gt; struct IntHash&lt;WebCore::IntSize&gt; {
&gt; 
&gt; Code inside a namespace should not be indented.  [whitespace/indent] [4]

I agree with the style bot, but I’m not sure we should re-indent the whole file.

&gt;&gt; Source/WebCore/platform/graphics/IntSizeHash.h:34
&gt;&gt; +    template&lt;&gt; struct DefaultHash&lt;WebCore::IntSize&gt; { typedef IntHash&lt;WebCore::IntSize&gt; Hash; };
&gt; 
&gt; More than one command on the same line  [whitespace/newline] [4]

False positive from the style bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340100</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-25 19:30:55 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/76660&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80145</attachid>
            <date>2011-01-25 16:37:09 -0800</date>
            <delta_ts>2011-01-25 18:18:47 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>IntRectHash.txt</filename>
            <type>text/plain</type>
            <size>10601</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NjUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDEtMjUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUzMTQzCisgICAgICAgIEFkZCBJbnRSZWN0SGFzaAorCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3RIYXNoLmg6IEFkZGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6
ZUhhc2guaDogRG9uJ3QgZG8gInVzaW5nIFdlYkNvcmU6OkludFNpemUiIQorCiAyMDExLTAxLTI1
ICBDcmlzIE5lY2thciAgPGNkbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc2NjUyKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NDc2LDYg
KzU0NzYsNyBAQAogCQlFMTI4NEJENjEwNDRBMDFFMDBFQUVCNTIgLyogRE9NUGFnZVRyYW5zaXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTEyODRCRDQxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQuaCAqLzsg
fTsKIAkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTJFREI3QTBCMzA4QTc4MDAy
NzA0QjYgLyogRXZlbnRUYXJnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFMTJFREJFQTBCMzA4RTBCMDAyNzA0QjYgLyogRXZlbnRUYXJnZXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyRURC
RTkwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCAqLzsgfTsKKwkJRTEzNEY1QUIx
MkVFMzQzRjAwNEVDNThEIC8qIEludFJlY3RIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTM0RjVBQTEyRUUzNDNGMDA0RUM1OEQgLyogSW50UmVj
dEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMTNGMDFGMTEyNzBFMTkwMDBERkJBNzEgLyogQ29va2llU3RvcmFnZU1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxM0YwMUYwMTI3MEUxOTAw
MERGQkE3MSAvKiBDb29raWVTdG9yYWdlTWFjLm1tICovOyB9OwogCQlFMTVBMzZENzExMDQ1NzIw
MDBCN0I2MzkgLyogWE1MTlNOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTE1QTM2RDYxMTA0NTcyMDAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuaCAq
LzsgfTsKIAkJRTE1QTM2RDkxMTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1QTM2RDgxMTA0NTcy
NzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwICovOyB9OwpAQCAtNTU4NSw3ICs1NTg2LDcgQEAK
IAkJRTQ0NjE0M0MwQ0Q2ODlDQzAwRkFEQTc1IC8qIEpTSFRNTFNvdXJjZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QjQyMzcyMENCRkI2
RTAwMEFGMkVDRSAvKiBKU0hUTUxTb3VyY2VFbGVtZW50LmggKi87IH07CiAJCUU0NDYxNDUxMENE
NjhBMzUwMEZBREE3NSAvKiBSZW5kZXJWaWRlby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEI0MUUzMzBDQkZCNjA5MDBBRjJFQ0UgLyogUmVuZGVy
VmlkZW8uY3BwICovOyB9OwogCQlFNDQ2MTQ1MjBDRDY4QTM1MDBGQURBNzUgLyogUmVuZGVyVmlk
ZW8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QjQx
RTM0MENCRkI2MDkwMEFGMkVDRSAvKiBSZW5kZXJWaWRlby5oICovOyB9OwotCQlFNDYyQTRBMTEx
M0U3MUJFMDA0QTQyMjAgLyogSW50UG9pbnRIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50UG9p
bnRIYXNoLmggKi87IH07CisJCUU0NjJBNEExMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhh
c2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NjJB
NEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDc3OEI3RjExNUE1ODFBMDBCNUQzNzIg
LyogSlNDdXN0b21FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDc3OEI3RDExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5jcHAg
Ki87IH07CiAJCUU0Nzc4QjgwMTE1QTU4MUEwMEI1RDM3MiAvKiBKU0N1c3RvbUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDc3OEI3RTExNUE1
ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5oICovOyB9OwogCQlFNDdCNEJFODBFNzEyNDE2
MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTgyNiw2ICsxMTgyNyw3IEBACiAJCUUxMjg0QkQ0MTA0NEEwMUUwMEVB
RUI1MiAvKiBET01QYWdlVHJhbnNpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTEyRURCN0EwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxMkVEQkU5MEIzMDhFMEIwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFRhcmdldC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxMzRGNUFBMTJFRTM0M0YwMDRFQzU4RCAv
KiBJbnRSZWN0SGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRSZWN0
SGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTNGMDFFQTEyNzBFMTBEMDBE
RkJBNzEgLyogQ29va2llU3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb29raWVTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxM0YwMUYw
MTI3MEUxOTAwMERGQkE3MSAvKiBDb29raWVTdG9yYWdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llU3RvcmFnZU1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTE1QTM2RDYxMTA0NTcyMDAwQjdCNjM5IC8qIFhNTE5TTmFtZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MTlNOYW1lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc1MDEsMTAgKzE3NTAzLDExIEBACiAJCQkJQjI3NTM1
NDMwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlU291cmNlLmggKi8sCiAJCQkJQjI3NTM1NDQwQjA1
MzgxNDAwMkNFNjRGIC8qIEludFBvaW50LmggKi8sCiAJCQkJRTQ2MkE0QTAxMTNFNzFCRTAwNEE0
MjIwIC8qIEludFBvaW50SGFzaC5oICovLAorCQkJCUUxMzRGNUFBMTJFRTM0M0YwMDRFQzU4RCAv
KiBJbnRSZWN0SGFzaC5oICovLAogCQkJCUIyNzUzNTQ1MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRS
ZWN0LmNwcCAqLywKIAkJCQlCMjc1MzU0NjBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdC5oICov
LAotCQkJCUIyNzUzNTQ3MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXplLmggKi8sCiAJCQkJQjI3
NTM1NDgwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemVIYXNoLmggKi8sCisJCQkJQjI3NTM1NDcw
QjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemUuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBB
RjJFQ0UgLyogTWVkaWFQbGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVD
RSAvKiBNZWRpYVBsYXllci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBN
ZWRpYVBsYXllclByaXZhdGUuaCAqLywKQEAgLTIyNDI2LDYgKzIyNDI5LDcgQEAKIAkJCQk5N0RE
NEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM4QUUzNEYxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0RjJEMjA1NDEyRUFFN0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUxMzRGNUFCMTJFRTM0M0YwMDRFQzU4RCAvKiBJbnRSZWN0SGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bnRSZWN0SGFzaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3RIYXNoLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0SGFzaC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKyAKKyNpZm5kZWYgSW50UmVjdEhhc2hfaAorI2RlZmluZSBJbnRSZWN0SGFzaF9o
CisKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50UG9pbnRIYXNoLmgiCisjaW5j
bHVkZSAiSW50U2l6ZUhhc2guaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisKK25hbWVzcGFjZSBXVEYgeworCisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgSW50SGFzaDxXZWJDb3JlOjpJbnRSZWN0PiB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGtleSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGludEhhc2goc3RhdGljX2Nhc3Q8dWludDY0X3Q+KERlZmF1bHRIYXNoPFdlYkNvcmU6
OkludFBvaW50Pjo6SGFzaDo6aGFzaChrZXkubG9jYXRpb24oKSkpIDw8IDMyIHwgRGVmYXVsdEhh
c2g8V2ViQ29yZTo6SW50U2l6ZT46Okhhc2g6Omhhc2goa2V5LnNpemUoKSkpOworICAgICAgICB9
CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGEsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBE
ZWZhdWx0SGFzaDxXZWJDb3JlOjpJbnRQb2ludD46Okhhc2g6OmVxdWFsKGEubG9jYXRpb24oKSwg
Yi5sb2NhdGlvbigpKSAmJiBEZWZhdWx0SGFzaDxXZWJDb3JlOjpJbnRTaXplPjo6SGFzaDo6ZXF1
YWwoYS5zaXplKCksIGIuc2l6ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgfTsKKyAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpJbnRSZWN0PiB7IHR5cGVkZWYg
SW50SGFzaDxXZWJDb3JlOjpJbnRSZWN0PiBIYXNoOyB9OworICAgIAorICAgIHRlbXBsYXRlPD4g
c3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6SW50UmVjdD4gOiBHZW5lcmljSGFzaFRyYWl0czxX
ZWJDb3JlOjpJbnRSZWN0PiB7CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJ
c1plcm8gPSB0cnVlOworICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9u
ID0gZmFsc2U7CisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJD
b3JlOjpJbnRSZWN0JiBzbG90KSB7IG5ldyAoJnNsb3QpIFdlYkNvcmU6OkludFJlY3QoLTEsIC0x
LCAtMSwgLTEpOyB9CisgICAgICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS54KCkgPT0gLTEgJiYgdmFsdWUu
eSgpID09IC0xICYmIHZhbHVlLndpZHRoKCkgPT0gLTEgJiYgdmFsdWUuaGVpZ2h0KCkgPT0gLTE7
IH0KKyAgICB9OworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFNpemVIYXNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50U2l6ZUhhc2guaAkocmV2aXNpb24gNzY2NTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRTaXplSGFzaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCwyMiArMjQsMjAgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKLXVzaW5nIFdlYkNvcmU6OkludFNpemU7Ci0KIG5hbWVzcGFjZSBXVEYgewog
Ci0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW50SGFzaDxJbnRTaXplPiB7Ci0gICAgICAgIHN0YXRp
YyB1bnNpZ25lZCBoYXNoKGNvbnN0IEludFNpemUmIGtleSkgeyByZXR1cm4gaW50SGFzaCgoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KGtleS53aWR0aCgpKSA8PCAzMiB8IGtleS5oZWlnaHQoKSkpOyB9
Ci0gICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEludFNpemUmIGEsIGNvbnN0IEludFNp
emUmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHRlbXBsYXRlPD4gc3RydWN0IEludEhhc2g8
V2ViQ29yZTo6SW50U2l6ZT4geworICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBrZXkpIHsgcmV0dXJuIGludEhhc2goKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihrZXkud2lkdGgoKSkgPDwgMzIgfCBrZXkuaGVpZ2h0KCkpKTsgfQorICAgICAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBhLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBiKSB7IHJldHVybiBhID09IGI7IH0KICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogICAgIH07Ci0gICAgdGVtcGxh
dGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SW50U2l6ZT4geyB0eXBlZGVmIEludEhhc2g8SW50U2l6
ZT4gSGFzaDsgfTsKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpJ
bnRTaXplPiB7IHR5cGVkZWYgSW50SGFzaDxXZWJDb3JlOjpJbnRTaXplPiBIYXNoOyB9OwogICAg
IAotICAgIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SW50U2l6ZT4gOiBHZW5lcmljSGFz
aFRyYWl0czxJbnRTaXplPiB7CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJD
b3JlOjpJbnRTaXplPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OkludFNpemU+IHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKLSAgICAgICAgc3Rh
dGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEludFNpemUmIHNsb3QpIHsgbmV3ICgmc2xv
dCkgSW50U2l6ZSgtMSwgLTEpOyB9Ci0gICAgICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IEludFNpemUmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS53aWR0aCgpID09IC0xICYmIHZh
bHVlLmhlaWdodCgpID09IC0xOyB9CisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0
ZWRWYWx1ZShXZWJDb3JlOjpJbnRTaXplJiBzbG90KSB7IG5ldyAoJnNsb3QpIFdlYkNvcmU6Oklu
dFNpemUoLTEsIC0xKTsgfQorICAgICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUud2lkdGgoKSA9PSAtMSAm
JiB2YWx1ZS5oZWlnaHQoKSA9PSAtMTsgfQogICAgIH07CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAo=
</data>
<flag name="review"
          id="71605"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>