<?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>48216</bug_id>
          
          <creation_ts>2010-10-24 17:39:47 -0700</creation_ts>
          <short_desc>Need a way to determine the screen rect for a form control in WebKit2</short_desc>
          <delta_ts>2016-10-30 12:10:22 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298677</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-24 17:39:47 -0700</bug_when>
    <thetext>Need a way to determine the screen rect for a form control in WebKit2. In old WebKit, Safari on Mac used [DOMHTMLInputElement _rectOnScreen] in DOMPrivate.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298678</commentid>
    <comment_count>1</comment_count>
      <attachid>71703</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-24 17:43:40 -0700</bug_when>
    <thetext>Created attachment 71703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298679</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-24 17:43:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/8530670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298680</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-24 17:52:13 -0700</bug_when>
    <thetext>Attachment 71703 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 12 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>298681</commentid>
    <comment_count>4</comment_count>
      <attachid>71703</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-24 17:56:00 -0700</bug_when>
    <thetext>Comment on attachment 71703
Patch

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

&gt; WebCore/dom/Element.cpp:485
&gt; +    IntRect result = quads[0].enclosingBoundingBox();
&gt; +    for (size_t i = 1; i &lt; quads.size(); ++i)
&gt; +        result.unite(quads[i].enclosingBoundingBox());

Can just start with the empty rect and start the loop from 0, but I guess this is slightly more efficient.

&gt; WebCore/dom/Element.cpp:489
&gt; +    FrameView* view = document()-&gt;view();
&gt; +    if (!view)
&gt; +        return IntRect();

This can go closer to the beginning.

&gt; WebKit2/WebKit2.xcodeproj/project.pbxproj:481
&gt; -			remoteGlobalIDString = C0CE72851247E66800BC0EC4 /* Derived Sources */;
&gt; +			remoteGlobalIDString = C0CE72851247E66800BC0EC4;

Don’t land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298683</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-24 18:10:57 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/70428.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1246255</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-30 12:10:22 -0700</bug_when>
    <thetext>Why didn&apos;t this share code with clientRect() or getBoundingClientRect()?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71703</attachid>
            <date>2010-10-24 17:43:40 -0700</date>
            <delta_ts>2010-10-24 17:56:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>rect.diff</filename>
            <type>text/plain</type>
            <size>13763</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDQyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
d2F5IHRvIGRldGVybWluZSB0aGUgc2NyZWVuIHJlY3QgZm9yIGEgZm9ybSBjb250cm9sIGluIFdl
YktpdDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MzA2NzA+CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODIxNgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBleHBvcnQuCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRzSW5XaW5kb3dTcGFjZSk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuaDoKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgYm91bmRpbmcg
Ym94IGluIHdpbmRvdyAoaW4gU2Nyb2xsVmlldyB0ZXJtaW5vbG9neSkgc3BhY2UsCisgICAgICAg
IHRoaXMgaXMgdGhlIHNhbWUgc3BhY2UgYXMgdGhlIHJvb3Qgdmlld3BvcnQuCisKIDIwMTAtMTAt
MjQgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA3MDMz
MykKKysrIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTM0NywyMSAr
MzQ3LDE3IEBAIF9fWk43V2ViQ29yZTE1Rm9jdXNDb250cm9sbGVyMTVzZXRGb2N1c2UKIF9fWk43
V2ViQ29yZTE1Rm9jdXNDb250cm9sbGVyMTVzZXRJbml0aWFsRm9jdXNFTlNfMTRGb2N1c0RpcmVj
dGlvbkVQTlNfMTNLZXlib2FyZEV2ZW50RQogX19aTjdXZWJDb3JlMTVGb2N1c0NvbnRyb2xsZXI5
c2V0QWN0aXZlRWIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTJzZXRGaWxsQ29sb3JF
UktOU181Q29sb3JFTlNfMTBDb2xvclNwYWNlRQorX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRl
eHQxNXNldEZpbGxHcmFkaWVudEVOM1dURjEwUGFzc1JlZlB0cklOU184R3JhZGllbnRFRUUKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MjBlbmRUcmFuc3BhcmVuY3lMYXllckV2CiBfX1pO
N1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIxc2V0Q29tcG9zaXRlT3BlcmF0aW9uRU5TXzE3Q29t
cG9zaXRlT3BlcmF0b3JFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDIyYmVnaW5UcmFu
c3BhcmVuY3lMYXllckVmCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDRjbGlwRVJLTlNf
NFBhdGhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDRjbGlwRVJLTlNfOUZsb2F0UmVj
dEUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0NHNhdmVFdgogX19aTjdXZWJDb3JlMTVH
cmFwaGljc0NvbnRleHQ1c2NhbGVFUktOU185RmxvYXRTaXplRQotX19aTjdXZWJDb3JlMTVHcmFw
aGljc0NvbnRleHQxNXNldEZpbGxHcmFkaWVudEVOM1dURjEwUGFzc1JlZlB0cklOU184R3JhZGll
bnRFRUUKLV9fWk43V2ViQ29yZTRQYXRoRDFFdgotX19aTjdXZWJDb3JlOEdyYWRpZW50MTJhZGRD
b2xvclN0b3BFZlJLTlNfNUNvbG9yRQotX19aTjdXZWJDb3JlNFBhdGhDMUV2Ci1fX1pON1dlYkNv
cmUxNUdyYXBoaWNzQ29udGV4dDRjbGlwRVJLTlNfNFBhdGhFCi1fX1pON1dlYkNvcmUxNUdyYXBo
aWNzQ29udGV4dDhmaWxsUGF0aEV2Ci1fX1pON1dlYkNvcmU0UGF0aDE0YWRkUm91bmRlZFJlY3RF
UktOU185RmxvYXRSZWN0RVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3ND
b250ZXh0N2FkZFBhdGhFUktOU180UGF0aEUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0
NHNhdmVFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ3cmVzdG9yZUV2CitfX1pON1dl
YkNvcmUxNUdyYXBoaWNzQ29udGV4dDhmaWxsUGF0aEV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNz
Q29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNz
Q29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFUktOU181Q29sb3JFTlNfMTBDb2xvclNw
YWNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5c2V0U2hhZG93RVJLTlNfOUZsb2F0
U2l6ZUVmUktOU181Q29sb3JFTlNfMTBDb2xvclNwYWNlRQpAQCAtNDg1LDggKzQ4MSw4IEBAIF9f
Wk43V2ViQ29yZTIyY291bnRlclZhbHVlRm9yRWxlbWVudEVQTlMKIF9fWk43V2ViQ29yZTIyY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dEVQTlNfNVJhbmdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU181RnJhbWVFagogX19aTjdXZWJDb3JlMjNS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiYmJOU18xMEVkaXRBY3Rpb25FCi1fX1pON1dlYkNv
cmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MjNjcmVhdGVGcmFnbWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBO
U180Tm9kZUVMbTBFRUUKK19fWk43V2ViQ29yZTIzb3ZlcnJpZGVEZWZhdWx0TGFuZ3VhZ2VFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyNEJpbmFyeVByb3BlcnR5TGlzdFdyaXRlcjE3d3Jp
dGVQcm9wZXJ0eUxpc3RFdgogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
M3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVF
CkBAIC02MDcsNiArNjAzLDkgQEAgX19aTjdXZWJDb3JlNFBhZ2U5Z29Gb3J3YXJkRXYKIF9fWk43
V2ViQ29yZTRQYWdlOWluaXRHcm91cEV2CiBfX1pON1dlYkNvcmU0UGFnZUMxRVJLTlMwXzExUGFn
ZUNsaWVudHNFCiBfX1pON1dlYkNvcmU0UGFnZUQxRXYKK19fWk43V2ViQ29yZTRQYXRoMTRhZGRS
b3VuZGVkUmVjdEVSS05TXzlGbG9hdFJlY3RFUktOU185RmxvYXRTaXplRQorX19aTjdXZWJDb3Jl
NFBhdGhDMUV2CitfX1pON1dlYkNvcmU0UGF0aEQxRXYKIF9fWk43V2ViQ29yZTRjb3JlRVAyME5T
VVJMUHJvdGVjdGlvblNwYWNlCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBO
U18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xOUNTU1N0eWxlRGVjbGFyYXRpb25FCiBfX1pON1dl
YkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU181
UmFuZ2VFCkBAIC03MjEsNiArNzIwLDcgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVM
YXlvdXRJZ25vcgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZv
cm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CitfX1pON1dlYkNv
cmU4R3JhZGllbnQxMmFkZENvbG9yU3RvcEVmUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU4R3Jh
ZGllbnRDMUVSS05TXzEwRmxvYXRQb2ludEVTM18KIF9fWk43V2ViQ29yZThJbnRQb2ludEMxRVJL
OF9OU1BvaW50CiBfX1pON1dlYkNvcmU4UG9zaXRpb25DMUVOM1dURjEwUGFzc1JlZlB0cklOU180
Tm9kZUVFRWkKQEAgLTkwMSw4ICs5MDEsOCBAQCBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjEy
YmxvY2tlZEVycm9yCiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JF
UktOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTRmcmFt
ZUhhc0xvYWRlZEV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE2b3V0Z29pbmdSZWZlcnJl
ckV2Ci1fX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjIwYWN0aXZlRG9jdW1lbnRMb2FkZXJFdgog
X19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIxN25ldHdvcmtpbmdDb250ZXh0RXYKK19fWk5LN1dl
YkNvcmUxMUZyYW1lTG9hZGVyMjBhY3RpdmVEb2N1bWVudExvYWRlckV2CiBfX1pOSzdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjI3bnVtUGVuZGluZ09yTG9hZGluZ1JlcXVlc3RzRWIKIF9fWk5LN1dlYkNv
cmUxMUZyYW1lTG9hZGVyOGxvYWRUeXBlRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTB2
aXNpdENvdW50RXYKQEAgLTEwODUsNiArMTA4NSw3IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVj
b252ZXJ0VG9Db250YWluaW4KIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWlu
aW5nV2luZG93RVJLTlNfOEludFBvaW50RQogX19aTks3V2ViQ29yZTZXaWRnZXQ5ZnJhbWVSZWN0
RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWRO
YW1lRQorX19aTks3V2ViQ29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNlRXYKIF9fWk5L
N1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y2Q0dS
ZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2N19OU1JlY3RFdgpJbmRleDogV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDcwMzMyKQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1Nyw2ICs0NTcsNDEgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbEhlaWdodCgpIGNvbnN0CiAg
ICAgcmV0dXJuIDA7CiB9CiAKK0ludFJlY3QgRWxlbWVudDo6Ym91bmRzSW5XaW5kb3dTcGFjZSgp
IGNvbnN0Cit7CisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CisKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIGlmIChpc1NWR0VsZW1lbnQoKSAmJiByZW5kZXJlcigpKSB7CisgICAgICAgIC8vIEdl
dCB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlIGZyb20gdGhlIFNWRyBtb2RlbC4KKyAgICAgICAgY29u
c3QgU1ZHRWxlbWVudCogc3ZnRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IFNWR0VsZW1lbnQq
Pih0aGlzKTsKKyAgICAgICAgRmxvYXRSZWN0IGxvY2FsUmVjdDsKKyAgICAgICAgaWYgKHN2Z0Vs
ZW1lbnQtPmJvdW5kaW5nQm94KGxvY2FsUmVjdCkpCisgICAgICAgICAgICBxdWFkcy5hcHBlbmQo
cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChsb2NhbFJlY3QpKTsKKyAgICB9IGVsc2UK
KyNlbmRpZgorICAgIHsKKyAgICAgICAgLy8gR2V0IHRoZSBib3VuZGluZyByZWN0YW5nbGUgZnJv
bSB0aGUgYm94IG1vZGVsLgorICAgICAgICBpZiAocmVuZGVyQm94TW9kZWxPYmplY3QoKSkKKyAg
ICAgICAgICAgIHJlbmRlckJveE1vZGVsT2JqZWN0KCktPmFic29sdXRlUXVhZHMocXVhZHMpOwor
ICAgIH0KKworICAgIGlmIChxdWFkcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBJbnRSZWN0
KCk7CisKKyAgICBJbnRSZWN0IHJlc3VsdCA9IHF1YWRzWzBdLmVuY2xvc2luZ0JvdW5kaW5nQm94
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBxdWFkcy5zaXplKCk7ICsraSkKKyAgICAg
ICAgcmVzdWx0LnVuaXRlKHF1YWRzW2ldLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworCisgICAg
RnJhbWVWaWV3KiB2aWV3ID0gZG9jdW1lbnQoKS0+dmlldygpOworICAgIGlmICghdmlldykKKyAg
ICAgICAgcmV0dXJuIEludFJlY3QoKTsKKworICAgIHJlc3VsdCA9IHZpZXctPmNvbnRlbnRzVG9X
aW5kb3cocmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBQYXNzUmVmUHRyPENsaWVu
dFJlY3RMaXN0PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpIGNvbnN0CiB7CiAgICAgZG9jdW1l
bnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CkluZGV4OiBXZWJD
b3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5oCShy
ZXZpc2lvbiA3MDMzMikKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMTU5LDYgKzE1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0OwogCisgICAgSW50
UmVjdCBib3VuZHNJbldpbmRvd1NwYWNlKCkgY29uc3Q7CisKICAgICBQYXNzUmVmUHRyPENsaWVu
dFJlY3RMaXN0PiBnZXRDbGllbnRSZWN0cygpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8Q2xpZW50
UmVjdD4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3Q7CiAKSW5kZXg6IFdlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDQyNykK
KysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTAtMTAtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgd2F5IHRvIGRldGVybWluZSB0
aGUgc2NyZWVuIHJlY3QgZm9yIGEgZm9ybSBjb250cm9sIGluIFdlYktpdDIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg1MzA2NzA+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00ODIxNgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIEFkZCBjb252ZXJzaW9u
IGZyb20gSW50UmVjdCB0byBXS1JlY3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZU5v
ZGVIYW5kbGVHZXRFbGVtZW50Qm91bmRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmVsZW1lbnRCb3VuZHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZS5oOgorICAgICAgICBBZGQgU1BJIHRvIGdldCB0aGUgcmVjdCBpbiB3aW5kb3cg
c3BhY2UuIFRoZSBjbGllbnQgY2FuIHRoZW4gY29udmVydCB0aGlzIHRvIHNjcmVlbgorICAgICAg
ICBzcGFjZSBpZiB0aGV5IHdpc2ggdG8uCisKIDIwMTAtMTAtMjMgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBX
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAkocmV2aXNpb24gNzAzMzIpCisrKyBX
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
MTc0LDYgKzE3NCwxNiBAQCBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
CiAgICAgcmV0dXJuIHdrUmVjdDsKIH0KIAoraW5saW5lIFdLUmVjdCB0b0FQSShjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIFdLUmVjdCB3a1JlY3Q7CisgICAgd2tSZWN0Lm9y
aWdpbi54ID0gcmVjdC54KCk7CisgICAgd2tSZWN0Lm9yaWdpbi55ID0gcmVjdC55KCk7CisgICAg
d2tSZWN0LnNpemUud2lkdGggPSByZWN0LndpZHRoKCk7CisgICAgd2tSZWN0LnNpemUuaGVpZ2h0
ID0gcmVjdC5oZWlnaHQoKTsKKyAgICByZXR1cm4gd2tSZWN0OworfQorCiAvKiBFbnVtIGNvbnZl
cnNpb25zICovCiAKIGlubGluZSBXS1R5cGVJRCB0b0FQSShBUElPYmplY3Q6OlR5cGUgdHlwZSkK
SW5kZXg6IFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biA3MDMzMikKKysrIFdlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC00NzgsNyArNDc4LDcgQEAKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0
ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAv
KiBQcm9qZWN0IG9iamVjdCAqLzsKIAkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJ
RFN0cmluZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87
CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEMwQ0U3Mjg1MTI0N0U2NjgwMEJDMEVDNDsKIAkJ
CXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJfTsKIC8qIEVuZCBQQlhDb250YWlu
ZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAJ
KHJldmlzaW9uIDcwMzMyKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDEx
IEBAIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRsZU5vZGVIYW5kbGUKICAgICByZXR1cm4g
dG9BUEkobm9kZUhhbmRsZS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKIH0KIAorV0tSZWN0IFdL
QnVuZGxlTm9kZUhhbmRsZUdldEVsZW1lbnRCb3VuZHMoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5v
ZGVIYW5kbGVSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChub2RlSGFuZGxlUmVmKS0+
ZWxlbWVudEJvdW5kcygpKTsKK30KKwogdm9pZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5w
dXRFbGVtZW50VmFsdWVGb3JVc2VyKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVt
ZW50SGFuZGxlUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZVJlZikKIHsKICAgICB0b0ltcGwoaHRtbElu
cHV0RWxlbWVudEhhbmRsZVJlZiktPnNldEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVzZXIodG9X
VEZTdHJpbmcodmFsdWVSZWYpKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVBy
aXZhdGUuaAkocmV2aXNpb24gNzAzMzIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSwxMSArMzksMTMgQEAgV0tfRVhQT1JUIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRs
ZQogCiAvKiBBZGRpdGlvbmFsIERPTSBPcGVyYXRpb25zICovCiAKLS8qIEhUTUxJbnB1dEVsZW1l
bnQgT3BlcmF0aW9ucyAqLworV0tfRVhQT1JUIFdLUmVjdCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRF
bGVtZW50Qm91bmRzKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlSGFuZGxlKTsKKworLyogSFRN
TElucHV0RWxlbWVudCBTcGVjaWZpYyBPcGVyYXRpb25zICovCiBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKFdLQnVuZGxlTm9k
ZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVtZW50SGFuZGxlLCBXS1N0cmluZ1JlZiB2YWx1ZSk7CiBX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5wdXRFbGVtZW50QXV0b2Zp
bGxlZChXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSwgYm9vbCBm
aWxsZWQpOwogCi0vKiBIVE1MVGFibGVDZWxsRWxlbWVudCBPcGVyYXRpb25zICovCisvKiBIVE1M
VGFibGVDZWxsRWxlbWVudCBTcGVjaWZpYyBPcGVyYXRpb25zICovCiBXS19FWFBPUlQgV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlIVE1MVGFibGVDZWxsRWxlbWVu
dENlbGxBYm92ZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbFRhYmxlQ2VsbEVsZW1lbnRIYW5k
bGUpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5jcHAJKHJldmlzaW9uIDcwMzMyKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMCArMjcsMTEgQEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxOYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTTm9k
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm9kZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE5h
bWVzLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtOTAsNiArOTEsMTQgQEAgTm9kZSogSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlOjpjb3JlTm9kZQogLy8gQWRkaXRpb25hbCBET00gT3BlcmF0aW9ucwogLy8gTm90ZTogVGhl
c2Ugc2hvdWxkIG9ubHkgYmUgb3BlcmF0aW9ucyB0aGF0IGFyZSBub3QgZXhwb3NlZCB0byBKYXZh
U2NyaXB0LgogCitJbnRSZWN0IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6ZWxlbWVudEJvdW5k
cygpIGNvbnN0Cit7CisgICAgaWYgKCFtX25vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAg
cmV0dXJuIEludFJlY3QoKTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9u
b2RlLmdldCgpKS0+Ym91bmRzSW5XaW5kb3dTcGFjZSgpOworfQorCiB2b2lkIEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZTo6c2V0SFRNTElucHV0RWxlbWVudFZhbHVlRm9yVXNlcihjb25zdCBTdHJp
bmcmIHZhbHVlKQogewogICAgIGlmICghbV9ub2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKSW5k
ZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAkocmV2aXNpb24gNzAzMzIpCisrKyBX
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhh
bmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgSW50UmVjdDsKICAgICBj
bGFzcyBOb2RlOwogfQogCkBAIC01MCw2ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEFkZGl0
aW9uYWwgRE9NIE9wZXJhdGlvbnMKICAgICAvLyBOb3RlOiBUaGVzZSBzaG91bGQgb25seSBiZSBv
cGVyYXRpb25zIHRoYXQgYXJlIG5vdCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCisgICAgV2ViQ29y
ZTo6SW50UmVjdCBlbGVtZW50Qm91bmRzKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIVE1MSW5wdXRF
bGVtZW50VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0SFRNTElucHV0
RWxlbWVudEF1dG9maWxsZWQoYm9vbCk7CiAgICAgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGU+IGNvcHlIVE1MVGFibGVDZWxsRWxlbWVudENlbGxBYm92ZSgpOwpJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAJKHJldmlzaW9uIDcwMzMyKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIFdlYkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FCiAgICAgaWYgKCFlbGVt
ZW50LT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gIHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsK
KyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVu
dCo+KGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5jbGllbnQoKSktPndl
YkZyYW1lKCk7CiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoKS50ZXh0Rmll
bGREaWRCZWdpbkVkaXRpbmcobV9wYWdlLCBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
ZWxlbWVudCksIHdlYkZyYW1lKTsKIH0KIAo=
</data>
<flag name="review"
          id="61811"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>