<?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>105106</bug_id>
          
          <creation_ts>2012-12-15 13:40:17 -0800</creation_ts>
          <short_desc>Add SPI to WebKit1 WebFrame for hit testing</short_desc>
          <delta_ts>2012-12-18 10:07:38 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Alice Liu">alice.barraclough</reporter>
          <assigned_to name="Alice Liu">alice.barraclough</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792185</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-15 13:40:17 -0800</bug_when>
    <thetext>WebFrame doesn&apos;t have any hit testing-related API.  And it doesn&apos;t have way to convert that DOMNode to a JSValueRef.   This patch adds that functionality to WebFrame, as SPI in WebFramePrivate.  I&apos;m not sure if it should be SPI or API.  i could use some feedback on that, especially. 

&lt;rdar://problem/12880594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792186</commentid>
    <comment_count>1</comment_count>
      <attachid>179613</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-15 13:46:49 -0800</bug_when>
    <thetext>Created attachment 179613
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792195</commentid>
    <comment_count>2</comment_count>
      <attachid>179616</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-15 14:18:53 -0800</bug_when>
    <thetext>Created attachment 179616
patch created from correct directory level</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792198</commentid>
    <comment_count>3</comment_count>
      <attachid>179616</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-15 14:29:51 -0800</bug_when>
    <thetext>Comment on attachment 179616
patch created from correct directory level

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

&gt; Source/WebKit/mac/ChangeLog:3
&gt; +        Add API or SPI to WebFrame for hit testing and node conversion to JSValueRef

It’s odd to have these two APIs lumped together into one bug and one patch, even if your intentions are to use them together. Please file a separate bug for one of these.

&gt; Source/WebKit/mac/WebView/WebFrame.mm:1505
&gt; +    Frame* coreFrame = _private-&gt;coreFrame;
&gt; +    if (!coreFrame)
&gt; +        return nil;
&gt; +    return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame-&gt;eventHandler()-&gt;hitTestResultAtPoint(IntPoint(point), false, true)] autorelease];

This does a poor job for non-WebHTMLView frames (the only built-in example of which that is left is WebPDFView). You can see how -[WebView _elementAtWindowPoint:] handles this more gracefully and generally. I’d say it’s OK to go with this simplified version, but a generic version would be fine, too.

&gt; Source/WebKit/mac/WebView/WebFrame.mm:1508
&gt; +- (JSValueRef)jsWrapper:(DOMNode *)node forWorld:(WebScriptWorld *)world

I think a name like
    -jsWrapperForNode:inWorld:
would be more Cocoa-y and accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792224</commentid>
    <comment_count>4</comment_count>
      <attachid>179616</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-15 15:26:39 -0800</bug_when>
    <thetext>Comment on attachment 179616
patch created from correct directory level

Attachment 179616 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15366188</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792269</commentid>
    <comment_count>5</comment_count>
      <attachid>179616</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-12-15 18:29:21 -0800</bug_when>
    <thetext>Comment on attachment 179616
patch created from correct directory level

I agree with mitz.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792298</commentid>
    <comment_count>6</comment_count>
      <attachid>179641</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-15 22:57:42 -0800</bug_when>
    <thetext>Created attachment 179641
patch fixed name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793443</commentid>
    <comment_count>7</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:07:08 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 179616 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179616&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/mac/ChangeLog:3
&gt; &gt; +        Add API or SPI to WebFrame for hit testing and node conversion to JSValueRef
&gt; 
&gt; It’s odd to have these two APIs lumped together into one bug and one patch, even if your intentions are to use them together. Please file a separate bug for one of these.
&gt; 
filed bug 105262 for node conversion.  re-designating this bug as hit-testing-related only. 

&gt; &gt; Source/WebKit/mac/WebView/WebFrame.mm:1505
&gt; &gt; +    Frame* coreFrame = _private-&gt;coreFrame;
&gt; &gt; +    if (!coreFrame)
&gt; &gt; +        return nil;
&gt; &gt; +    return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame-&gt;eventHandler()-&gt;hitTestResultAtPoint(IntPoint(point), false, true)] autorelease];
&gt; 
&gt; This does a poor job for non-WebHTMLView frames (the only built-in example of which that is left is WebPDFView). You can see how -[WebView _elementAtWindowPoint:] handles this more gracefully and generally. I’d say it’s OK to go with this simplified version, but a generic version would be fine, too.
&gt; 
Thanks for pointing that out.  The key thing i heard there was that you are OK with this simplified version. 

&gt; &gt; Source/WebKit/mac/WebView/WebFrame.mm:1508
&gt; &gt; +- (JSValueRef)jsWrapper:(DOMNode *)node forWorld:(WebScriptWorld *)world
&gt; 
&gt; I think a name like
&gt;     -jsWrapperForNode:inWorld:
&gt; would be more Cocoa-y and accurate.

addressed in patch for bug 105262. 

thank you. -alice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793446</commentid>
    <comment_count>8</comment_count>
      <attachid>179897</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:14:23 -0800</bug_when>
    <thetext>Created attachment 179897
patch, just elementAtPoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793453</commentid>
    <comment_count>9</comment_count>
      <attachid>179900</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:26:48 -0800</bug_when>
    <thetext>Created attachment 179900
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793467</commentid>
    <comment_count>10</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:49:55 -0800</bug_when>
    <thetext>Are the failures on the chromium-ews and mac-ews bots expected?  they have nothing to do with applied patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793765</commentid>
    <comment_count>11</comment_count>
      <attachid>179900</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-18 10:01:06 -0800</bug_when>
    <thetext>Comment on attachment 179900
patch

Thanks for splitting this up and adding an API test! A few suggestions below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793771</commentid>
    <comment_count>12</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-12-18 10:02:15 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 179900 [details])
&gt; Thanks for splitting this up and adding an API test! A few suggestions below.

The review form ate my suggestions. I’m going to try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793773</commentid>
    <comment_count>13</comment_count>
      <attachid>179900</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-18 10:02:48 -0800</bug_when>
    <thetext>Comment on attachment 179900
patch

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

&gt; Source/WebKit/mac/WebView/WebFramePrivate.h:141
&gt; +- (NSDictionary *)elementAtPoint:(NSPoint)point;

Though we’re not terribly consistent about this, many of our SPI methods are prefixed with an underscore. I would prefer that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793788</commentid>
    <comment_count>14</comment_count>
      <attachid>179900</attachid>
    <who name="">mitz</who>
    <bug_when>2012-12-18 10:07:38 -0800</bug_when>
    <thetext>Comment on attachment 179900
patch

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

&gt; Tools/TestWebKitAPI/Tests/mac/ElementAtPointInWebFrame.mm:32
&gt; +@interface ElementAtPointFrameLoadDelegate : NSObject {
&gt; +}

I think you can leave off the braces when there are no ivars.

&gt; Tools/TestWebKitAPI/Tests/mac/ElementAtPointInWebFrame.mm:50
&gt; +    RetainPtr&lt;WebView&gt; webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]);

One of the features of this SPI (which separates it from the elementFromPoint DOM API) is that it can hit test outside the frame bounds. It would be neat if you e.g. made the frame narrower and then hit tested a point whose x coordinate was beyond the frame’s width.

&gt; Tools/TestWebKitAPI/Tests/mac/ElementAtPointInWebFrame.mm:63
&gt; +    EXPECT_TRUE([[domElement getAttribute:@&quot;name&quot;] isEqualToString:@&quot;first&quot;]);

Rather than EXPECT_TRUE, you should use the macro that compares NSStrings, EXPECT_WK_STREQ.

&gt; Tools/TestWebKitAPI/Tests/mac/ElementAtPointInWebFrame.mm:67
&gt; +    EXPECT_TRUE([[domElement getAttribute:@&quot;name&quot;] isEqualToString:@&quot;second&quot;]);

Ditto.

&gt; Tools/TestWebKitAPI/Tests/mac/ElementAtPointInWebFrame.mm:71
&gt; +    EXPECT_TRUE([[domElement tagName] isEqualToString:@&quot;BODY&quot;]);

Ditto.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179613</attachid>
            <date>2012-12-15 13:46:49 -0800</date>
            <delta_ts>2012-12-15 14:18:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>3108</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzc4MDYpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE1ICBBbGljZSBCYXJyYWNsb3VnaCAg
PGFsaWNlLmJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQVBJIG9yIFNQSSB0
byBXZWJGcmFtZSBmb3IgaGl0IHRlc3RpbmcgYW5kIG5vZGUgY29udmVyc2lvbiB0byBKU1ZhbHVl
UmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUx
MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIGVsZW1lbnRBdFBvaW50Ol0p
OiBBZGRlZC4gVGFrZXMgYW4gTlNQb2ludCB0byBmZWVkIHRvIHRoZSBXZWJDb3JlOjpGcmFtZSBm
b3IgaGl0LXRlc3RpbmcuCisgICAgICAgIENyZWF0ZXMgYSBXZWJFbGVtZW50RGljdGlvbmFyeSBm
cm9tIHRoYXQgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCwgYW5kIHJldHVybnMgdGhlIGVsZW1lbnQg
ZGljdGlvbmFyeS4gCisgICAgICAgICgtW1dlYkZyYW1lIGpzV3JhcHBlcjpmb3JXb3JsZDpdKTog
QWRkZWQuIFRha2VzIGEgRE9NTm9kZSBhbmQgV2ViU2NyaXB0V29ybGQgYW5kIHByb3ZpZGVzIGEg
SlNWYWx1ZVJlZgorICAgICAgICBmb3IgdGhlIFdlYkNvcmU6Ok5vZGUgaW4gdGhhdCBwYXJ0aWN1
bGFyIFdlYlNjcmlwdFdvcmxkLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmg6
CisKIDIwMTItMTItMTUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlLWxhbmRpbmcgcGF0Y2ggZm9yICJJbnRyb2R1Y2luZyB0aGUgRGF0YWJhc2VTdHJhdGVneSBh
bmQgZGF0YWJhc2Ugc2VydmVycyIuCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0
ZS5oCShyZXZpc2lvbiAxMzc1NjApCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw0ICsxMzgsNyBAQAogLy8gUHJpbnRpbmcuCiAt
IChOU0FycmF5ICopX2NvbXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQp
cHJpbnRXaWR0aFNjYWxlRmFjdG9yIHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKE5T
RGljdGlvbmFyeSAqKWVsZW1lbnRBdFBvaW50OihOU1BvaW50KXBvaW50OworLSAoSlNWYWx1ZVJl
Zilqc1dyYXBwZXI6KERPTU5vZGUgKilub2RlIGZvcldvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdv
cmxkOworCiBAZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAxMzc1NjAp
CisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2ViRG9jdW1lbnRMb2FkZXJNYWMuaCIKICNpbXBvcnQgIldlYkR5bmFtaWNTY3JvbGxCYXJzVmll
dy5oIgorI2ltcG9ydCAiV2ViRWxlbWVudERpY3Rpb25hcnkuaCIKICNpbXBvcnQgIldlYkZyYW1l
TG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViSFRNTFZpZXcuaCIKQEAgLTc2LDYgKzc3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSlNOb2RlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgpAQCAtMTQ5NSw0ICsx
NDk3LDI1IEBACiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0KCktPmds
b2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4ZWMoKSk7CiB9CiAK
Ky0gKE5TRGljdGlvbmFyeSAqKWVsZW1lbnRBdFBvaW50OihOU1BvaW50KXBvaW50Cit7CisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJh
bWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIFtbW1dlYkVsZW1lbnREaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aEhpdFRlc3RSZXN1bHQ6Y29yZUZyYW1lLT5ldmVudEhhbmRsZXIo
KS0+aGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50UG9pbnQocG9pbnQpLCBmYWxzZSwgdHJ1ZSldIGF1
dG9yZWxlYXNlXTsKK30KKworLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXI6KERPTU5vZGUgKilub2Rl
IGZvcldvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAgRnJhbWUqIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9IGNvcmVGcmFtZS0+c2Ny
aXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTQzo6SlNMb2NrSG9sZGVy
IGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179616</attachid>
            <date>2012-12-15 14:18:53 -0800</date>
            <delta_ts>2012-12-15 22:57:42 -0800</delta_ts>
            <desc>patch created from correct directory level</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>3171</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgwNikKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE1
ICBBbGljZSBCYXJyYWNsb3VnaCAgPGFsaWNlLmJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgQVBJIG9yIFNQSSB0byBXZWJGcmFtZSBmb3IgaGl0IHRlc3RpbmcgYW5kIG5vZGUg
Y29udmVyc2lvbiB0byBKU1ZhbHVlUmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDUxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZy
YW1lIGVsZW1lbnRBdFBvaW50Ol0pOiBBZGRlZC4gVGFrZXMgYW4gTlNQb2ludCB0byBmZWVkIHRv
IHRoZSBXZWJDb3JlOjpGcmFtZSBmb3IgaGl0LXRlc3RpbmcuCisgICAgICAgIENyZWF0ZXMgYSBX
ZWJFbGVtZW50RGljdGlvbmFyeSBmcm9tIHRoYXQgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCwgYW5k
IHJldHVybnMgdGhlIGVsZW1lbnQgZGljdGlvbmFyeS4gCisgICAgICAgICgtW1dlYkZyYW1lIGpz
V3JhcHBlcjpmb3JXb3JsZDpdKTogQWRkZWQuIFRha2VzIGEgRE9NTm9kZSBhbmQgV2ViU2NyaXB0
V29ybGQgYW5kIHByb3ZpZGVzIGEgSlNWYWx1ZVJlZgorICAgICAgICBmb3IgdGhlIFdlYkNvcmU6
Ok5vZGUgaW4gdGhhdCBwYXJ0aWN1bGFyIFdlYlNjcmlwdFdvcmxkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRnJhbWVQcml2YXRlLmg6CisKIDIwMTItMTItMTUgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlLWxhbmRpbmcgcGF0Y2ggZm9yICJJbnRyb2R1Y2luZyB0
aGUgRGF0YWJhc2VTdHJhdGVneSBhbmQgZGF0YWJhc2Ugc2VydmVycyIuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJKHJldmlzaW9uIDEzNzgxMSkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEzOCw0ICsxMzgsNyBAQAogLy8gUHJpbnRpbmcuCiAtIChOU0FycmF5ICopX2Nv
bXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRXaWR0aFNjYWxl
RmFjdG9yIHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKE5TRGljdGlvbmFyeSAqKWVs
ZW1lbnRBdFBvaW50OihOU1BvaW50KXBvaW50OworLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXI6KERP
TU5vZGUgKilub2RlIGZvcldvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkOworCiBAZW5kCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDEzNzgxMSkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcgY29weSkK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIldlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV2ViRG9jdW1lbnRMb2FkZXJNYWMuaCIKICNpbXBvcnQgIldlYkR5bmFtaWNTY3JvbGxC
YXJzVmlldy5oIgorI2ltcG9ydCAiV2ViRWxlbWVudERpY3Rpb25hcnkuaCIKICNpbXBvcnQgIldl
YkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJGcmFtZVZpZXdJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViSFRNTFZpZXcuaCIKQEAgLTc2LDYgKzc3LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvSFRNTE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSlNOb2RlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgpAQCAtMTQ5
NSw0ICsxNDk3LDI1IEBACiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0
KCktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4ZWMoKSk7
CiB9CiAKKy0gKE5TRGljdGlvbmFyeSAqKWVsZW1lbnRBdFBvaW50OihOU1BvaW50KXBvaW50Cit7
CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFj
b3JlRnJhbWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIFtbW1dlYkVsZW1lbnRE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aEhpdFRlc3RSZXN1bHQ6Y29yZUZyYW1lLT5ldmVudEhh
bmRsZXIoKS0+aGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50UG9pbnQocG9pbnQpLCBmYWxzZSwgdHJ1
ZSldIGF1dG9yZWxlYXNlXTsKK30KKworLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXI6KERPTU5vZGUg
Kilub2RlIGZvcldvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9IGNvcmVGcmFt
ZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQK
</data>
<flag name="review"
          id="196557"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="196558"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179641</attachid>
            <date>2012-12-15 22:57:42 -0800</date>
            <delta_ts>2012-12-18 01:14:23 -0800</delta_ts>
            <desc>patch fixed name</desc>
            <filename>OpenSource-1.patch</filename>
            <type>text/plain</type>
            <size>3191</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTE1
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBUEkgb3Ig
U1BJIHRvIFdlYkZyYW1lIGZvciBoaXQgdGVzdGluZyBhbmQgbm9kZSBjb252ZXJzaW9uIHRvIEpT
VmFsdWVSZWYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNTEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgZWxlbWVudEF0UG9p
bnQ6XSk6IEFkZGVkLiBUYWtlcyBhbiBOU1BvaW50IHRvIGZlZWQgdG8gdGhlIFdlYkNvcmU6OkZy
YW1lIGZvciBoaXQtdGVzdGluZy4KKyAgICAgICAgQ3JlYXRlcyBhIFdlYkVsZW1lbnREaWN0aW9u
YXJ5IGZyb20gdGhhdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0LCBhbmQgcmV0dXJucyB0aGUgZWxl
bWVudCBkaWN0aW9uYXJ5LiAKKyAgICAgICAgKC1bV2ViRnJhbWUganNXcmFwcGVyOmZvcldvcmxk
Ol0pOiBBZGRlZC4gVGFrZXMgYSBET01Ob2RlIGFuZCBXZWJTY3JpcHRXb3JsZCBhbmQgcHJvdmlk
ZXMgYSBKU1ZhbHVlUmVmCisgICAgICAgIGZvciB0aGUgV2ViQ29yZTo6Tm9kZSBpbiB0aGF0IHBh
cnRpY3VsYXIgV2ViU2NyaXB0V29ybGQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZh
dGUuaDoKKwogMjAxMi0xMi0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmUtbGFuZGluZyBwYXRjaCBmb3IgIkludHJvZHVjaW5nIHRoZSBEYXRhYmFzZVN0cmF0
ZWd5IGFuZCBkYXRhYmFzZSBzZXJ2ZXJzIi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAi
V2ViRGF0YVNvdXJjZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJEb2N1bWVudExvYWRlck1hYy5o
IgogI2ltcG9ydCAiV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3LmgiCisjaW1wb3J0ICJXZWJFbGVt
ZW50RGljdGlvbmFyeS5oIgogI2ltcG9ydCAiV2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbXBv
cnQgIldlYkZyYW1lVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJIVE1MVmlldy5oIgpAQCAt
NzYsNiArNzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJj
aGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CkBAIC0xMjQzLDYgKzEyNDUsMjcgQEAgLSAoTlNBcnJheSAq
KV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50UwogICAgIHJldHVybiBwYWdlczsKIH0KIAorLSAo
TlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyAgICBGcmFt
ZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVGcmFtZSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkg
YWxsb2NdIGluaXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5o
aXRUZXN0UmVzdWx0QXRQb2ludChJbnRQb2ludChwb2ludCksIGZhbHNlLCB0cnVlKV0gYXV0b3Jl
bGVhc2VdOworfQorCistIChKU1ZhbHVlUmVmKWpzV3JhcHBlckZvck5vZGU6KERPTU5vZGUgKilu
b2RlIGZvcldvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAg
IHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9IGNvcmVGcmFtZS0+
c2NyaXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlNDOjpFeGVjU3RhdGUq
IGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpTQzo6SlNMb2NrSG9s
ZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkZy
YW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJ
KHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw0ICsxMzgsNyBAQCBAaW50ZXJmYWNlIFdl
YkZyYW1lIChXZWJQcml2YXRlKQogLy8gUHJpbnRpbmcuCiAtIChOU0FycmF5ICopX2NvbXB1dGVQ
YWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRXaWR0aFNjYWxlRmFjdG9y
IHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKE5TRGljdGlvbmFyeSAqKWVsZW1lbnRB
dFBvaW50OihOU1BvaW50KXBvaW50OworLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihE
T01Ob2RlICopbm9kZSBmb3JXb3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZDsKKwogQGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179897</attachid>
            <date>2012-12-18 01:14:23 -0800</date>
            <delta_ts>2012-12-18 01:26:48 -0800</delta_ts>
            <desc>patch, just elementAtPoint</desc>
            <filename>elementAtPoint.patch</filename>
            <type>text/plain</type>
            <size>10485</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE4
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8g
V2ViS2l0MSBXZWJGcmFtZSBmb3IgaGl0IHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAg
KC1bV2ViRnJhbWUgZWxlbWVudEF0UG9pbnQ6XSk6IEFkZGVkLiBUYWtlcyBhbiBOU1BvaW50IHRv
IGZlZWQgdG8gdGhlIFdlYkNvcmU6OkZyYW1lIGZvciBoaXQtdGVzdGluZy4KKyAgICAgICAgQ3Jl
YXRlcyBhIFdlYkVsZW1lbnREaWN0aW9uYXJ5IGZyb20gdGhhdCBXZWJDb3JlOjpIaXRUZXN0UmVz
dWx0LCBhbmQgcmV0dXJucyB0aGUgZWxlbWVudCBkaWN0aW9uYXJ5LiAKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEyLTEyLTE1ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1sYW5kaW5nIHBhdGNoIGZvciAiSW50cm9kdWNpbmcg
dGhlIERhdGFiYXNlU3RyYXRlZ3kgYW5kIGRhdGFiYXNlIHNlcnZlcnMiLgpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAxMzc4MzQpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0
MCw3IEBACiAjaW1wb3J0ICJXZWJEYXRhU291cmNlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkRv
Y3VtZW50TG9hZGVyTWFjLmgiCiAjaW1wb3J0ICJXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcuaCIK
KyNpbXBvcnQgIldlYkVsZW1lbnREaWN0aW9uYXJ5LmgiCiAjaW1wb3J0ICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldl
YkhUTUxWaWV3LmgiCkBAIC0xMjQzLDYgKzEyNDQsMTQgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRl
UGFnZVJlY3RzV2l0aFByaW50UwogICAgIHJldHVybiBwYWdlczsKIH0KIAorLSAoTlNEaWN0aW9u
YXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyAgICBGcmFtZSogY29yZUZy
YW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVz
dWx0QXRQb2ludChJbnRQb2ludChwb2ludCksIGZhbHNlLCB0cnVlKV0gYXV0b3JlbGVhc2VdOwor
fQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFtZQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCShyZXZpc2lvbiAxMzc4MzQpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzgsNCArMTM4LDYgQEAgQGludGVyZmFjZSBXZWJGcmFtZSAoV2ViUHJpdmF0ZSkKIC8v
IFByaW50aW5nLgogLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50U2NhbGVG
YWN0b3I6KGZsb2F0KXByaW50V2lkdGhTY2FsZUZhY3RvciBwYWdlU2l6ZTooTlNTaXplKXBhZ2VT
aXplOwogCistIChOU0RpY3Rpb25hcnkgKillbGVtZW50QXRQb2ludDooTlNQb2ludClwb2ludDsK
KwogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTM3OTkyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMTggIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTEwNgorICAgICAgICBBZGQgU1BJIHRvIFdlYktpdDEgV2ViRnJhbWUgZm9y
IGhpdCB0ZXN0aW5nCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkZWQgZmlsZSBUZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1l
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBMb2FkcyBodG1sIHdp
dGggdHdvIGRpdnMgcG9zaXRpb25lZCBpbiB0aGUgMm5kIGFuZCA0dGggcXVhZHJhbnRzIG9mIHRo
ZSB3ZWJ2aWV3LgorICAgICAgICBUaGVuIGhpdC10ZXN0cyBhdCB0aHJlZSBwb2ludHMsIGV4cGVj
dGluZyB0byBoaXQgdGhlIHR3byBkaXZzIGFuZCBib2R5IGVsZW1lbnQuIAorCiAyMDEyLTEyLTE3
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gRml4IG1ldGhvZHMgaW4gVGVzdFJ1bm5lciB0aGF0IGRpcmVjdGx5IG1vZGlmeSB0aGUg
c2V0dGluZ3MgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlByZWZlcmVuY2VzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM3ODM0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDYgKzU1LDcgQEAKIAkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4QjE0MEQ3QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSAqLzsg
fTsKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VS
TC5jcHAgKi87IH07CisJCTRCRTkyMzhGMTY4MDQ4ODkwMDk1ODlBMyAvKiBFbGVtZW50QXRQb2lu
dEluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QkU5MjM4RTE2ODA0ODg5MDA5NTg5QTMgLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1l
Lm1tICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9CdW5kbGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0
VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHRO
b2RlSGFuZGxlLmNwcCAqLzsgfTsKIAkJNEY0RDJDMEUxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEY0RDJDMEQxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9yeUluc3RydW1l
bnRhdGlvblRlc3QuY3BwICovOyB9OwpAQCAtMzAyLDYgKzMwMyw3IEBACiAJCTM3REM2NzhGMTQw
RDdEM0EwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSBET01SYW5nZU9mU3RyaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ0MEExRDM4MTRBMDEwM0EwMDhBNjZGMiAvKiBLVVJMLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QkU5MjM4RTE2ODA0ODg5MDA5NTg5QTMgLyog
RWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNEQyQzBE
MTYyNkZFMjcwMDMyMEZFMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qu
Y3BwOyBwYXRoID0gV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzU0LDYgKzc1Niw3IEBACiAJCQkJQzA3RTZDQUUxM0ZENjc2
NTAwMzhCMjJCIC8qIER5bmFtaWNEZXZpY2VTY2FsZUZhY3Rvci5tbSAqLywKIAkJCQkzNzc2QkM2
MjE1MDk0NkJDMDA0M0E2NkQgLyogRGV2aWNlU2NhbGVGYWN0b3JJbkRhc2hib2FyZFJlZ2lvbnMu
bW0gKi8sCiAJCQkJOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9y
T25CYWNrLm1tICovLAorCQkJCTRCRTkyMzhFMTY4MDQ4ODkwMDk1ODlBMyAvKiBFbGVtZW50QXRQ
b2ludEluV2ViRnJhbWUubW0gKi8sCiAJCQkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovLAogCQkJCTlCMjZGQzZCMTU5RDA2MTAwMENDMzc2
NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJQzUwN0U4QTYxNEM2
NTQ1QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSAqLywKQEAgLTEwMzAsNiArMTAzMyw3IEBA
CiAJCQkJRkUyMTdFQ0QxNjQwQTU0QTAwNTI5ODhCIC8qIFZNSW5zcGVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTI5QUI4QUExMTY0QzczNTgwMEQ0OUJFQyAvKiBDdXN0b21Qcm90b2NvbHNU
ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlBQjhBQTQxNjRDN0E5MzAwRDQ5QkVDIC8qIFRl
c3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QkU5
MjM4RjE2ODA0ODg5MDA5NTg5QTMgLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9FbGVtZW50QXRQ
b2ludEluV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tCShyZXZpc2lvbiAwKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1l
UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIEVsZW1l
bnRBdFBvaW50RnJhbWVMb2FkRGVsZWdhdGUgOiBOU09iamVjdCB7Cit9CitAZW5kCisKK3N0YXRp
YyBib29sIGRpZEZpbmlzaExvYWQ7CisKK0BpbXBsZW1lbnRhdGlvbiBFbGVtZW50QXRQb2ludEZy
YW1lTG9hZERlbGVnYXRlCisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBkaWRG
aW5pc2hMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUKK3sKKyAgICBkaWRGaW5pc2hMb2Fk
ID0gdHJ1ZTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1Qo
V2ViS2l0MSwgRWxlbWVudEF0UG9pbnQpCit7CisgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZp
ZXcoQWRvcHROUywgW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgMTIwLCAyMDApIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOworICAgIFJldGFpblB0
cjxFbGVtZW50QXRQb2ludEZyYW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZShBZG9w
dE5TLCBbRWxlbWVudEF0UG9pbnRGcmFtZUxvYWREZWxlZ2F0ZSBuZXddKTsKKworICAgIHdlYlZp
ZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBXZWJGcmFtZSAqbWFpbkZyYW1lID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWU7CisKKyAgICBb
bWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOkAiPHN0eWxlPiBkaXYgeyBwb3NpdGlvbjphYnNvbHV0
ZTsgd2lkdGg6NjBweDsgaGVpZ2h0OjEwMHB4OyB9IDwvc3R5bGU+IDxkaXYgbmFtZT0nZmlyc3Qn
PjwvZGl2PiA8ZGl2IG5hbWU9J3NlY29uZCcgc3R5bGU9J2xlZnQ6NjBweDsgdG9wOjEwMHB4Oyc+
PC9kaXY+IgorICAgICAgICAgICAgICAgICAgICAgIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJhYm91dDpibGFuayJdXTsKKworICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Cisg
ICAgCisgICAgTlNEaWN0aW9uYXJ5ICplbGVtZW50RGljdGlvbmFyeSA9IFttYWluRnJhbWUgZWxl
bWVudEF0UG9pbnQ6TlNNYWtlUG9pbnQoMzAsIDUwKV07CisgICAgRE9NRWxlbWVudCAqZG9tRWxl
bWVudCA9IFtlbGVtZW50RGljdGlvbmFyeSBvYmplY3RGb3JLZXk6V2ViRWxlbWVudERPTU5vZGVL
ZXldOworICAgIEVYUEVDVF9UUlVFKFtbZG9tRWxlbWVudCBnZXRBdHRyaWJ1dGU6QCJuYW1lIl0g
aXNFcXVhbFRvU3RyaW5nOkAiZmlyc3QiXSk7CisKKyAgICBlbGVtZW50RGljdGlvbmFyeSA9IFtt
YWluRnJhbWUgZWxlbWVudEF0UG9pbnQ6TlNNYWtlUG9pbnQoOTAsIDE1MCldOworICAgIGRvbUVs
ZW1lbnQgPSBbZWxlbWVudERpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYkVsZW1lbnRET01Ob2Rl
S2V5XTsKKyAgICBFWFBFQ1RfVFJVRShbW2RvbUVsZW1lbnQgZ2V0QXR0cmlidXRlOkAibmFtZSJd
IGlzRXF1YWxUb1N0cmluZzpAInNlY29uZCJdKTsKKworICAgIGVsZW1lbnREaWN0aW9uYXJ5ID0g
W21haW5GcmFtZSBlbGVtZW50QXRQb2ludDpOU01ha2VQb2ludCgzMCwgMTUwKV07CisgICAgZG9t
RWxlbWVudCA9IFtlbGVtZW50RGljdGlvbmFyeSBvYmplY3RGb3JLZXk6V2ViRWxlbWVudERPTU5v
ZGVLZXldOworICAgIEVYUEVDVF9UUlVFKFtbZG9tRWxlbWVudCB0YWdOYW1lXSBpc0VxdWFsVG9T
dHJpbmc6QCJCT0RZIl0pOworCit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179900</attachid>
            <date>2012-12-18 01:26:48 -0800</date>
            <delta_ts>2012-12-18 10:07:38 -0800</delta_ts>
            <desc>patch</desc>
            <filename>elementAtPoint.patch</filename>
            <type>text/plain</type>
            <size>10484</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE4
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8g
V2ViS2l0MSBXZWJGcmFtZSBmb3IgaGl0IHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAg
KC1bV2ViRnJhbWUgZWxlbWVudEF0UG9pbnQ6XSk6IEFkZGVkLiBUYWtlcyBhbiBOU1BvaW50IHRv
IGZlZWQgdG8gdGhlIFdlYkNvcmU6OkZyYW1lIGZvciBoaXQtdGVzdGluZy4KKyAgICAgICAgQ3Jl
YXRlcyBhIFdlYkVsZW1lbnREaWN0aW9uYXJ5IGZyb20gdGhhdCBXZWJDb3JlOjpIaXRUZXN0UmVz
dWx0LCBhbmQgcmV0dXJucyB0aGUgZWxlbWVudCBkaWN0aW9uYXJ5LiAKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEyLTEyLTE1ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1sYW5kaW5nIHBhdGNoIGZvciAiSW50cm9kdWNpbmcg
dGhlIERhdGFiYXNlU3RyYXRlZ3kgYW5kIGRhdGFiYXNlIHNlcnZlcnMiLgpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAxMzc4MzQpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0
MCw3IEBACiAjaW1wb3J0ICJXZWJEYXRhU291cmNlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkRv
Y3VtZW50TG9hZGVyTWFjLmgiCiAjaW1wb3J0ICJXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcuaCIK
KyNpbXBvcnQgIldlYkVsZW1lbnREaWN0aW9uYXJ5LmgiCiAjaW1wb3J0ICJXZWJGcmFtZUxvYWRl
ckNsaWVudC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldl
YkhUTUxWaWV3LmgiCkBAIC0xMjQzLDYgKzEyNDQsMTQgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRl
UGFnZVJlY3RzV2l0aFByaW50UwogICAgIHJldHVybiBwYWdlczsKIH0KIAorLSAoTlNEaWN0aW9u
YXJ5ICopZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyAgICBGcmFtZSogY29yZUZy
YW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2NdIGlu
aXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVz
dWx0QXRQb2ludChJbnRQb2ludChwb2ludCksIGZhbHNlLCB0cnVlKV0gYXV0b3JlbGVhc2VdOwor
fQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFtZQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCShyZXZpc2lvbiAxMzc4MzQpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzgsNCArMTM4LDYgQEAgQGludGVyZmFjZSBXZWJGcmFtZSAoV2ViUHJpdmF0ZSkKIC8v
IFByaW50aW5nLgogLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50U2NhbGVG
YWN0b3I6KGZsb2F0KXByaW50V2lkdGhTY2FsZUZhY3RvciBwYWdlU2l6ZTooTlNTaXplKXBhZ2VT
aXplOwogCistIChOU0RpY3Rpb25hcnkgKillbGVtZW50QXRQb2ludDooTlNQb2ludClwb2ludDsK
KwogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTM3OTkyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMTggIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTEwNgorICAgICAgICBBZGQgU1BJIHRvIFdlYktpdDEgV2ViRnJhbWUgZm9y
IGhpdCB0ZXN0aW5nCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogQWRkZWQgZmlsZSBUZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1l
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBMb2FkcyBodG1sIHdp
dGggdHdvIGRpdnMgcG9zaXRpb25lZCBpbiB0aGUgMm5kIGFuZCA0dGggcXVhZHJhbnRzIG9mIHRo
ZSB3ZWJ2aWV3LgorICAgICAgICBUaGVuIGhpdC10ZXN0cyBhdCB0aHJlZSBwb2ludHMsIGV4cGVj
dGluZyB0byBoaXQgdGhlIHR3byBkaXZzIGFuZCBib2R5IGVsZW1lbnQuIAorCiAyMDEyLTEyLTE3
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gRml4IG1ldGhvZHMgaW4gVGVzdFJ1bm5lciB0aGF0IGRpcmVjdGx5IG1vZGlmeSB0aGUg
c2V0dGluZ3MgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlByZWZlcmVuY2VzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM3ODM0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDYgKzU1LDcgQEAKIAkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4QjE0MEQ3QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSAqLzsg
fTsKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VS
TC5jcHAgKi87IH07CisJCTRCRTkyMzhGMTY4MDQ4ODkwMDk1ODlBMyAvKiBFbGVtZW50QXRQb2lu
dEluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QkU5MjM4RTE2ODA0ODg5MDA5NTg5QTMgLyogRWxlbWVudEF0UG9pbnRJbldlYkZyYW1l
Lm1tICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9CdW5kbGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0
VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHRO
b2RlSGFuZGxlLmNwcCAqLzsgfTsKIAkJNEY0RDJDMEUxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEY0RDJDMEQxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9yeUluc3RydW1l
bnRhdGlvblRlc3QuY3BwICovOyB9OwpAQCAtMzAyLDYgKzMwMyw3IEBACiAJCTM3REM2NzhGMTQw
RDdEM0EwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSBET01SYW5nZU9mU3RyaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ0MEExRDM4MTRBMDEwM0EwMDhBNjZGMiAvKiBLVVJMLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NEE2MjJDMTE0QTBFMkI2MDA0ODUxNUIgLyogV1RGU3RyaW5nVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlN0cmluZ1V0aWxpdGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QkU5MjM4RTE2ODA0ODg5MDA5NTg5QTMgLyog
RWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNEQyQzBE
MTYyNkZFMjcwMDMyMEZFMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qu
Y3BwOyBwYXRoID0gV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzU0LDYgKzc1Niw3IEBACiAJCQkJQzA3RTZDQUUxM0ZENjc2
NTAwMzhCMjJCIC8qIER5bmFtaWNEZXZpY2VTY2FsZUZhY3Rvci5tbSAqLywKIAkJCQkzNzc2QkM2
MjE1MDk0NkJDMDA0M0E2NkQgLyogRGV2aWNlU2NhbGVGYWN0b3JJbkRhc2hib2FyZFJlZ2lvbnMu
bW0gKi8sCiAJCQkJOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9y
T25CYWNrLm1tICovLAorCQkJCTRCRTkyMzhFMTY4MDQ4ODkwMDk1ODlBMyAvKiBFbGVtZW50QXRQ
b2ludEluV2ViRnJhbWUubW0gKi8sCiAJCQkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhU
TUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovLAogCQkJCTlCMjZGQzZCMTU5RDA2MTAwMENDMzc2
NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJQzUwN0U4QTYxNEM2
NTQ1QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSAqLywKQEAgLTEwMzQsNiArMTAzNyw3IEBA
CiAJCQkJMjlBQjhBQTExNjRDNzM1ODAwRDQ5QkVDIC8qIEN1c3RvbVByb3RvY29sc1Rlc3QubW0g
aW4gU291cmNlcyAqLywKIAkJCQkyOUFCOEFBNDE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY0MDEzMTY3
QTgzMDUwMDBCRDIxOCAvKiBMYXlvdXRVbml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRCRTky
MzhGMTY4MDQ4ODkwMDk1ODlBMyAvKiBFbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0gaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0VsZW1lbnRBdFBv
aW50SW5XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9FbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0JKHJldmlzaW9uIDApCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9FbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0JKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQ
cml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgRWxlbWVu
dEF0UG9pbnRGcmFtZUxvYWREZWxlZ2F0ZSA6IE5TT2JqZWN0IHsKK30KK0BlbmQKKworc3RhdGlj
IGJvb2wgZGlkRmluaXNoTG9hZDsKKworQGltcGxlbWVudGF0aW9uIEVsZW1lbnRBdFBvaW50RnJh
bWVMb2FkRGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZp
bmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZQoreworICAgIGRpZEZpbmlzaExvYWQg
PSB0cnVlOworfQorCitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChX
ZWJLaXQxLCBFbGVtZW50QXRQb2ludCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViVmlldz4gd2ViVmll
dyhBZG9wdE5TLCBbW1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCAxMjAsIDIwMCkgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgUmV0YWluUHRy
PEVsZW1lbnRBdFBvaW50RnJhbWVMb2FkRGVsZWdhdGU+IGZyYW1lTG9hZERlbGVnYXRlKEFkb3B0
TlMsIFtFbGVtZW50QXRQb2ludEZyYW1lTG9hZERlbGVnYXRlIG5ld10pOworCisgICAgd2ViVmll
dy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOworICAg
IFdlYkZyYW1lICptYWluRnJhbWUgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZTsKKworICAgIFtt
YWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCI8c3R5bGU+IGRpdiB7IHBvc2l0aW9uOmFic29sdXRl
OyB3aWR0aDo2MHB4OyBoZWlnaHQ6MTAwcHg7IH0gPC9zdHlsZT4gPGRpdiBuYW1lPSdmaXJzdCc+
PC9kaXY+IDxkaXYgbmFtZT0nc2Vjb25kJyBzdHlsZT0nbGVmdDo2MHB4OyB0b3A6MTAwcHg7Jz48
L2Rpdj4iCisgICAgICAgICAgICAgICAgICAgICAgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImFib3V0OmJsYW5rIl1dOworCisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAg
ICAKKyAgICBOU0RpY3Rpb25hcnkgKmVsZW1lbnREaWN0aW9uYXJ5ID0gW21haW5GcmFtZSBlbGVt
ZW50QXRQb2ludDpOU01ha2VQb2ludCgzMCwgNTApXTsKKyAgICBET01FbGVtZW50ICpkb21FbGVt
ZW50ID0gW2VsZW1lbnREaWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJFbGVtZW50RE9NTm9kZUtl
eV07CisgICAgRVhQRUNUX1RSVUUoW1tkb21FbGVtZW50IGdldEF0dHJpYnV0ZTpAIm5hbWUiXSBp
c0VxdWFsVG9TdHJpbmc6QCJmaXJzdCJdKTsKKworICAgIGVsZW1lbnREaWN0aW9uYXJ5ID0gW21h
aW5GcmFtZSBlbGVtZW50QXRQb2ludDpOU01ha2VQb2ludCg5MCwgMTUwKV07CisgICAgZG9tRWxl
bWVudCA9IFtlbGVtZW50RGljdGlvbmFyeSBvYmplY3RGb3JLZXk6V2ViRWxlbWVudERPTU5vZGVL
ZXldOworICAgIEVYUEVDVF9UUlVFKFtbZG9tRWxlbWVudCBnZXRBdHRyaWJ1dGU6QCJuYW1lIl0g
aXNFcXVhbFRvU3RyaW5nOkAic2Vjb25kIl0pOworCisgICAgZWxlbWVudERpY3Rpb25hcnkgPSBb
bWFpbkZyYW1lIGVsZW1lbnRBdFBvaW50Ok5TTWFrZVBvaW50KDMwLCAxNTApXTsKKyAgICBkb21F
bGVtZW50ID0gW2VsZW1lbnREaWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJFbGVtZW50RE9NTm9k
ZUtleV07CisgICAgRVhQRUNUX1RSVUUoW1tkb21FbGVtZW50IHRhZ05hbWVdIGlzRXF1YWxUb1N0
cmluZzpAIkJPRFkiXSk7CisKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="196977"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>