<?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>37803</bug_id>
          
          <creation_ts>2010-04-19 08:43:59 -0700</creation_ts>
          <short_desc>Spatial Navigation: adapt the logic of {deep}findFocusableNodeInDirection to do traversal starting from Node* not Document*</short_desc>
          <delta_ts>2010-05-07 00:40:46 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</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>
          
          <blocked>35784</blocked>
    
    <blocked>36463</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>214049</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-19 08:43:59 -0700</bug_when>
    <thetext>Instead of having findFocusableNodeInDirection and deepFindFocusableNodeInDirection logic working w/ a Document pointer as incoming parameter from callers, I would like to change them to get a Node pointer. Of course it can node be any node, but &quot;scrollable containers&quot; nodes, e.g. &lt;html&gt; (documentElement()), &lt;iframe&gt;, &lt;frame&gt; or scrollable div&apos;s.

It is a preparation for supporting scrollable content in Spatial Navigation. See bug 36463.

patch coming...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214051</commentid>
    <comment_count>1</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-19 08:47:16 -0700</bug_when>
    <thetext>s/it can node be any node/it can NOT be any node/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214054</commentid>
    <comment_count>2</comment_count>
      <attachid>53682</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-19 09:00:16 -0700</bug_when>
    <thetext>Created attachment 53682
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>214769</commentid>
    <comment_count>3</comment_count>
      <attachid>53845</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-20 10:52:31 -0700</bug_when>
    <thetext>Created attachment 53845
patch v2

- Better ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215861</commentid>
    <comment_count>4</comment_count>
      <attachid>54057</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-22 06:49:33 -0700</bug_when>
    <thetext>Created attachment 54057
(committer in r58882, reviewed by kenneth) patch v3

Same as patch v2, but fixed a minor bug in an ASSERT code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>215863</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-22 06:50:15 -0700</bug_when>
    <thetext>To help reviewrs, I can summarize patch v3 (attachment 54057):

* changes in advanceFocusDirectionally and findFocusedNodeInDirection are pretty much straighforward:

- at the former, instead passing Document* to the latter, it passes Document::firstChild() - a node -
- ... and it traverses the tree down from this node.
- Further at findFocusedNodeInDirection method, it changes the use of FOR to WHILE, but logic is exactly the same.

* in deepFindFocusableNodeInDirection, code is essentially the same, but under a IF now:

  // Iframe or Frame.
+ if (container-&gt;hasTagName(frameTag) || container-&gt;hasTagName(iframeTag)) {
  (...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217461</commentid>
    <comment_count>6</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-04-26 20:08:16 -0700</bug_when>
    <thetext>Ping review?

see comment #5 for an easier reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221665</commentid>
    <comment_count>7</comment_count>
      <attachid>54057</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-06 07:20:17 -0700</bug_when>
    <thetext>Comment on attachment 54057
(committer in r58882, reviewed by kenneth) patch v3


&gt; 
WebCore/page/FocusController.cpp:393
 +  void FocusController::findFocusableNodeInDirection(Node* outter, Node* focusedNode,
outer

WebCore/page/FocusController.cpp:398
 +      ASSERT(outter);
outer

WebCore/page/FocusController.cpp:404
 +      Node* candidate = outter;
same thing

WebCore/page/FocusController.cpp:443
 +      // Track if focusedNode is a descendant or not of the current container node being processed.
no need to add the &quot;or not&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221719</commentid>
    <comment_count>8</comment_count>
      <attachid>54057</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-06 09:19:05 -0700</bug_when>
    <thetext>Comment on attachment 54057
(committer in r58882, reviewed by kenneth) patch v3

Clearing flags on attachment: 54057

Committed r58882: &lt;http://trac.webkit.org/changeset/58882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222223</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-05-07 00:39:59 -0700</bug_when>
    <thetext>Revision r58882 cherry-picked into qtwebkit-2.0 with commit 712e5d5a8c5ff7d974e19bce03c56bf93ad82314</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53682</attachid>
            <date>2010-04-19 09:00:16 -0700</date>
            <delta_ts>2010-04-20 10:52:31 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>0001-Spatial-Navigation-modify-the-logic-of-deep-findFo.patch</filename>
            <type>text/plain</type>
            <size>10029</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAzYzU5ZGU5Mjg1MzllZjQ1ZmI1OTJjYjM0NjFmNzk1OGIyMjk5ODk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAxOSBBcHIgMjAxMCAxMTo1NDo0MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFNw
YXRpYWwgTmF2aWdhdGlvbjogbW9kaWZ5IHRoZSBsb2dpYyBvZiB7ZGVlcH1maW5kRm9jdXNhYmxl
Tm9kZUluRGlyZWN0aW9uIHRvIHdvcmsgd2l0aCBjb250YWluZXIgbm9kZXMsIG5vdCBEb2N1bWVu
dCoKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgwMwoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3
ZWJraXQub3JnPgoKSW5zdGVhZCBvZiByZWNlaXZpbmcgYSBEb2N1bWVudCBwb2ludGVyIGFzIGlu
Y29taW5nIHBhcmFtZXRlciwgcGF0Y2ggbW9kaWZpZXMKZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbiBhbmQgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gbWV0aG9kcyB0bwpyZWNl
aXZlIGEgTm9kZSBwb2ludGVyIGFzIHN0YXJ0IGZvciBjb250ZW50IHRyYXZlcnNhbC4KVGhpcyB3
YXkgd2UgY2FuIG1ha2UgZ29vZCB1c2Ugb2YgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rp
b24gdG8gdHJhdmVyc2UKb3RoZXIgc2Nyb2xsYWJsZSBjb250YWluZXIgbGlrZSBzY3JvbGxhYmxl
IGRpdidzLCBhbmQgbm90IG9ubHkgZnJhbWVzIG9yIGlmcmFtZXMuCgpObyBiZWhhdmlvciBjaGFu
Z2UuIEl0IGlzIGEgcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgc2Nyb2xsYWJsZSBjb250YWlu
ZXJzIGluIFNwYXRpYWwKTmF2aWdhdGlvbi4KCiogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgoo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKFdl
YkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbik6CihX
ZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9u
KToKKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5oOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgIHwgICAyMiArKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAgfCAgIDc0ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIFdlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgIHwgICAgNSArKy0KIDMgZmlsZXMgY2hhbmdlZCwg
NzUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODA4NzVhLi45YWY0Y2I3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMiw2
ICsyLDI4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAg
ICAgU3BhdGlhbCBOYXZpZ2F0aW9uOiBtb2RpZnkgdGhlIGxvZ2ljIG9mIHtkZWVwfWZpbmRGb2N1
c2FibGVOb2RlSW5EaXJlY3Rpb24gdG8gd29yayB3aXRoIGNvbnRhaW5lciBub2Rlcywgbm90IERv
Y3VtZW50KgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzc4MDMKKworICAgICAgICBJbnN0ZWFkIG9mIHJlY2VpdmluZyBhIERvY3VtZW50IHBvaW50ZXIg
YXMgaW5jb21pbmcgcGFyYW1ldGVyLCBwYXRjaCBtb2RpZmllcworICAgICAgICBmaW5kRm9jdXNh
YmxlTm9kZUluRGlyZWN0aW9uIGFuZCBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbiBt
ZXRob2RzIHRvCisgICAgICAgIHJlY2VpdmUgYSBOb2RlIHBvaW50ZXIgYXMgc3RhcnQgZm9yIGNv
bnRlbnQgdHJhdmVyc2FsLgorICAgICAgICBUaGlzIHdheSB3ZSBjYW4gbWFrZSBnb29kIHVzZSBv
ZiBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbiB0byB0cmF2ZXJzZQorICAgICAgICBv
dGhlciBzY3JvbGxhYmxlIGNvbnRhaW5lciBsaWtlIHNjcm9sbGFibGUgZGl2J3MsIGFuZCBub3Qg
b25seSBmcmFtZXMgb3IgaWZyYW1lcy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuIEl0
IGlzIGEgcHJlcGFyYXRpb24gZm9yIHN1cHBvcnRpbmcgc2Nyb2xsYWJsZSBjb250YWluZXJzIGlu
IFNwYXRpYWwKKyAgICAgICAgTmF2aWdhdGlvbi4KKworICAgICAgICAqIHBhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZp
bmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250
cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbik6CisgICAgICAgICogcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKworMjAxMC0wNC0xOSAgQW50b25pbyBHb21lcyAgPHRvbmlr
aXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CiAgICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjogYXQgQHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZD
bG9zZXIgbWFrZSBhbiBhc3NpZ25tZW50IHNob3J0Y3V0IHdoZW4gRm9jdXNDYW5kaWRhdGUgaXMg
bnVsbAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc4
MDIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA2ZGI5ZWY0Li45NDg0MmNjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgRm9jdXNDb250
cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hCiAgICAgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50b3AoKTsKIAogICAgIEZvY3Vz
Q2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRlOwotICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rp
b24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBmb2N1
c0NhbmRpZGF0ZSk7CisgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9j
dW1lbnQoKS0+Zmlyc3RDaGlsZCgpLCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgZm9j
dXNDYW5kaWRhdGUpOwogCiAgICAgTm9kZSogbm9kZSA9IGZvY3VzQ2FuZGlkYXRlLm5vZGU7CiAg
ICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKQEAgLTM5MCwyMCArMzkw
LDIzIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIoTm9kZSogZm9j
dXNlZE5vZGUsIGNvbnN0IEZvY3VzQ2FuZGlkYXRlCiAgICAgfQogfQogCi12b2lkIEZvY3VzQ29u
dHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQs
IE5vZGUqIGZvY3VzZWROb2RlLAordm9pZCBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVO
b2RlSW5EaXJlY3Rpb24oTm9kZSogb3V0dGVyLCBOb2RlKiBmb2N1c2VkTm9kZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3Vz
Q2FuZGlkYXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgRm9jdXNDYW5kaWRhdGUmIGNhbmRpZGF0ZVBhcmVudCkKIHsKLSAgICBBU1NF
UlQoZG9jdW1lbnQpOwotICAgIEFTU0VSVChjYW5kaWRhdGVQYXJlbnQuaXNOdWxsKCkgfHwgc3Rh
dGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlUGFyZW50Lm5vZGUpKTsK
KyAgICBBU1NFUlQob3V0dGVyKTsKKyAgICBBU1NFUlQoY2FuZGlkYXRlUGFyZW50LmlzTnVsbCgp
CisgICAgICAgIHx8IGNhbmRpZGF0ZVBhcmVudC5ub2RlLT5oYXNUYWdOYW1lKGZyYW1lVGFnKQor
ICAgICAgICB8fCBjYW5kaWRhdGVQYXJlbnQubm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpKTsK
IAogICAgIC8vIFdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGNsb3Nlc3RGb2N1
c0NhbmRpZGF0ZSBpZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCi0gICAgZm9yIChOb2RlKiBjYW5k
aWRhdGUgPSBkb2N1bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7IGNhbmRpZGF0ZSA9IGNh
bmRpZGF0ZS0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgTm9kZSogY2FuZGlkYXRlID0gb3V0
dGVyOworICAgIHdoaWxlIChjYW5kaWRhdGUpIHsKICAgICAgICAgLy8gSW5uZXIgZG9jdW1lbnRz
IGNhc2UuCiAKICAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKQot
ICAgICAgICAgICAgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oZm9jdXNlZE5vZGUs
IGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKTsKKyAg
ICAgICAgICAgIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGNhbmRpZGF0ZSwgZm9j
dXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CiAgICAg
ICAgIGVsc2UgaWYgKGNhbmRpZGF0ZSAhPSBmb2N1c2VkTm9kZSAmJiBjYW5kaWRhdGUtPmlzS2V5
Ym9hcmRGb2N1c2FibGUoZXZlbnQpKSB7CiAgICAgICAgICAgICBGb2N1c0NhbmRpZGF0ZSBjdXJy
ZW50Rm9jdXNDYW5kaWRhdGUoY2FuZGlkYXRlKTsKIApAQCAtNDExLDggKzQxNCwxMCBAQCB2b2lk
IEZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihEb2N1bWVudCog
ZG9jdW1lbnQsIE5vZGUqIGZvYwogICAgICAgICAgICAgZGlzdGFuY2VEYXRhRm9yTm9kZShkaXJl
Y3Rpb24sIGZvY3VzZWROb2RlLCBjdXJyZW50Rm9jdXNDYW5kaWRhdGUpOwogCiAgICAgICAgICAg
ICAvLyBCYWlsIG91dCBpZiBkaXN0YW5jZSBpcyBtYXhpbXVtLgotICAgICAgICAgICAgaWYgKGN1
cnJlbnRGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSA9PSBtYXhEaXN0YW5jZSgpKQorICAgICAgICAg
ICAgaWYgKGN1cnJlbnRGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSA9PSBtYXhEaXN0YW5jZSgpKSB7
CisgICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2Rl
KG91dHRlci0+cGFyZW50KCkpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAvLyBJZiBjYW5kaWRhdGVQYXJlbnQgaXMgbm90IG51bGwsIGl0
IG1lYW5zIHRoYXQgd2UgYXJlIGluIGEgcmVjdXJzaXZlIGNhbGwKICAgICAgICAgICAgIC8vIGZy
b20gZGVlcEZpbmVGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gKGkuZS4gcHJvY2Vzc2luZyBhbiBl
bGVtZW50IGluIGFuIGlmcmFtZSksCkBAIC00MjQsMzMgKzQyOSw1NCBAQCB2b2lkIEZvY3VzQ29u
dHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQs
IE5vZGUqIGZvYwogCiAgICAgICAgICAgICB1cGRhdGVGb2N1c0NhbmRpZGF0ZUlmQ2xvc2VyKGZv
Y3VzZWROb2RlLCBjdXJyZW50Rm9jdXNDYW5kaWRhdGUsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7
CiAgICAgICAgIH0KKworICAgICAgICBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4
dE5vZGUob3V0dGVyLT5wYXJlbnQoKSk7CiAgICAgfQogfQogCi12b2lkIEZvY3VzQ29udHJvbGxl
cjo6ZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oTm9kZSogZm9jdXNlZE5vZGUsIE5v
ZGUqIGNhbmRpZGF0ZSwKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5v
ZGVJbkRpcmVjdGlvbihOb2RlKiBjb250YWluZXIsIE5vZGUqIGZvY3VzZWROb2RlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNDYW5kaWRhdGUmIGNs
b3Nlc3RGb2N1c0NhbmRpZGF0ZSkKIHsKLSAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
ID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKLSAgICBp
ZiAoIW93bmVyLT5jb250ZW50RnJhbWUoKSkKKyAgICBBU1NFUlQoY29udGFpbmVyLT5oYXNUYWdO
YW1lKGZyYW1lVGFnKSB8fCBjb250YWluZXItPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSB8fCBjb250
YWluZXItPmhhc1RhZ05hbWUoZGl2VGFnKSk7CisKKyAgICAvLyBUcmFjayBpZiBmb2N1c2VkTm9k
ZSBpcyBhIGRlc2NlbmRhbnQgb3Igbm90IG9mIHRoZSBjdXJyZW50IGNvbnRhaW5lciBub2RlIGJl
aW5nIHByb2Nlc3NlZC4KKyAgICBib29sIGRlc2NlbmRhbnRPZkNvbnRhaW5lciA9IGZhbHNlOwor
ICAgIE5vZGUqIGZpcnN0Q2hpbGQgPSAwOworCisgICAgLy8gSWZyYW1lIG9yIEZyYW1lLgorICAg
IGlmIChjb250YWluZXItPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGNvbnRhaW5lci0+aGFzVGFn
TmFtZShpZnJhbWVUYWcpKSB7CisKKyAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25l
ciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNvbnRhaW5lcik7CisgICAg
ICAgIGlmICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRlbnRGcmFtZSgpLT5k
b2N1bWVudCgpOworICAgICAgICBpZiAoIWlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgZGVzY2VuZGFudE9mQ29udGFpbmVyID0gaW5uZXJEb2N1bWVudCA9PSBm
b2N1c2VkTm9kZS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgZmlyc3RDaGlsZCA9IGlubmVyRG9jdW1l
bnQtPmZpcnN0Q2hpbGQoKTsKKworICAgIH0KKworICAgIGlmIChkZXNjZW5kYW50T2ZDb250YWlu
ZXIpIHsKKyAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmaXJzdENoaWxkLCBm
b2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3du
ZXItPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgpOwotICAgIGlmICghaW5uZXJEb2N1bWVudCkK
KyAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBjb250YWluZXIgZWxlbWVudCBpdHNlbGYgaXMg
YSBnb29kIGNhbmRpZGF0ZQorICAgIC8vIHRvIG1vdmUgZm9jdXMgdG8uIElmIGl0IGlzLCB0aGVu
IHdlIHRyYXZlcnNlIGl0cyBpbm5lciBub2Rlcy4KKyAgICBGb2N1c0NhbmRpZGF0ZSBjYW5kaWRh
dGVQYXJlbnQgPSBGb2N1c0NhbmRpZGF0ZShjb250YWluZXIpOworICAgIGRpc3RhbmNlRGF0YUZv
ck5vZGUoZGlyZWN0aW9uLCBmb2N1c2VkTm9kZSwgY2FuZGlkYXRlUGFyZW50KTsKKworICAgIC8v
IEJhaWwgb3V0IGlmIGRpc3RhbmNlIGlzIG1heGltdW0uCisgICAgaWYgKGNhbmRpZGF0ZVBhcmVu
dC5kaXN0YW5jZSA9PSBtYXhEaXN0YW5jZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
aW5uZXJEb2N1bWVudCA9PSBmb2N1c2VkTm9kZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgZmluZEZv
Y3VzYWJsZU5vZGVJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBmb2N1c2VkTm9kZSwgZGlyZWN0
aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
Ly8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQge2l9ZnJhbWUgZWxlbWVudCBpdHNlbGYgaXMgYSBnb29k
IGNhbmRpZGF0ZQotICAgICAgICAvLyB0byBtb3ZlIGZvY3VzIHRvLiBJZiBpdCBpcywgdGhlbiB3
ZSB0cmF2ZXJzZSBpdHMgaW5uZXIgbm9kZXMuCi0gICAgICAgIEZvY3VzQ2FuZGlkYXRlIGNhbmRp
ZGF0ZVBhcmVudCA9IEZvY3VzQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7Ci0gICAgICAgIGRpc3RhbmNl
RGF0YUZvck5vZGUoZGlyZWN0aW9uLCBmb2N1c2VkTm9kZSwgY2FuZGlkYXRlUGFyZW50KTsKLQot
ICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIgYWxpZ25tZW50PwotICAgICAgICBpZiAoY2FuZGlk
YXRlUGFyZW50LmRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlKQotICAg
ICAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBmb2N1
c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLCBjYW5kaWRh
dGVQYXJlbnQpOwotICAgIH0KKyAgICAvLyBGSVhNRTogQ29uc2lkZXIgYWxpZ25tZW50PworICAg
IGlmIChjYW5kaWRhdGVQYXJlbnQuZGlzdGFuY2UgPCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlz
dGFuY2UpCisgICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oZmlyc3RDaGlsZCwg
Zm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSwgY2Fu
ZGlkYXRlUGFyZW50KTsKIH0KIAogc3RhdGljIGJvb2wgcmVsaW5xdWlzaGVzRWRpdGluZ0ZvY3Vz
KE5vZGUgKm5vZGUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgg
Yi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZGZhMzc4MC4uNDQxMDgzMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNjMsOSArNjMsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZl
bnQqKTsKICAgICBib29sIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKIAotICAgIHZvaWQgZmluZEZv
Y3VzYWJsZU5vZGVJbkRpcmVjdGlvbihEb2N1bWVudCosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwg
S2V5Ym9hcmRFdmVudCosIEZvY3VzQ2FuZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUsCisg
ICAgdm9pZCBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKE5vZGUqIG91dHRlciwgTm9kZSos
IEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRm9jdXNDYW5kaWRhdGUmIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9jdXNDYW5kaWRhdGUm
IHBhcmVudENhbmRpZGF0ZSA9IEZvY3VzQ2FuZGlkYXRlKCkpOwotICAgIHZvaWQgZGVlcEZpbmRG
b2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oTm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCosIEZvY3VzQ2FuZGlkYXRlJik7CisgICAgdm9pZCBkZWVwRmluZEZvY3VzYWJs
ZU5vZGVJbkRpcmVjdGlvbihOb2RlKiBjb250YWluZXIsIE5vZGUqIGZvY3VzZWQsIEZvY3VzRGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgRm9jdXNDYW5kaWRhdGUmKTsKIAogICAgIFBhZ2UqIG1f
cGFnZTsKICAgICBSZWZQdHI8RnJhbWU+IG1fZm9jdXNlZEZyYW1lOwotLSAKMS42LjAuNAoK
</data>
<flag name="commit-queue"
          id="37471"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53845</attachid>
            <date>2010-04-20 10:52:31 -0700</date>
            <delta_ts>2010-04-22 06:49:33 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>0001-2010-04-19-Antonio-Gomes-tonikitoo-webkit.org.patch</filename>
            <type>text/plain</type>
            <size>12087</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA3NDU1OTA0MGRkNTM1Y2VmYzVkNDQxYjMwYjE3MTgyOTA5Mjg1MzBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAxOSBBcHIgMjAxMCAxMTo1NDo0MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIDIw
MTAtMDQtMTkgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KCiAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjog
YWRhcHQgdGhlIGxvZ2ljIG9mIHtkZWVwfWZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gdG8g
d29yayB3aXRoIGNvbnRhaW5lciBub2Rlcywgbm90IERvY3VtZW50KgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgwMwoKICAgICAgICBJbnN0ZWFkIG9m
IHJlY2VpdmluZyBhIERvY3VtZW50IHBvaW50ZXIgYXMgaW5jb21pbmcgcGFyYW1ldGVyLCBwYXRj
aCBtb2RpZmllcwogICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gYW5kIGRlZXBG
aW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uIG1ldGhvZHMgdG8KICAgICAgICByZWNlaXZlIGEg
Tm9kZSBwb2ludGVyIGFzIHN0YXJ0IGZvciBjb250ZW50IHRyYXZlcnNhbC4KICAgICAgICBUaGlz
IHdheSB3ZSBjYW4gbWFrZSBnb29kIHVzZSBvZiBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbiB0byB0cmF2ZXJzZQogICAgICAgIG90aGVyIHNjcm9sbGFibGUgY29udGFpbmVyIGxpa2Ug
c2Nyb2xsYWJsZSBkaXYncywgYW5kIG5vdCBvbmx5IGZyYW1lcyBvciBpZnJhbWVzLgoKICAgICAg
ICBQYXRjaCBhbHNvIG1ha2VzIHVzZSBvZiAnd2hpbGUnIGluc3RlYWQgb2YgJ2ZvcicgdG8gbG9v
cCBjb250cm9sLCB0aGF0IGdpdmVzIG1vdmUKICAgICAgICBmbGV4aWJpbGl0eSB0byB0aGUgaW5j
cmVtZW50YWwgc3RlcDogZS5nLiBpZiBhIHNjcm9sbGFibGUgZGl2IHdhcyBwcm9jZXNzZWQsIHRo
ZSBpbmNyZW1lbnRhbAogICAgICAgIHN0ZXAgaW4gdGhlIGxvb3AgZG9lcyBub3QgaGF2ZSB0byBk
byBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkgYnV0IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmco
KS4KCiAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBJdCBpcyBhIHByZXBhcmF0aW9uIGZvciBz
dXBwb3J0aW5nIHNjcm9sbGFibGUgY29udGFpbmVycyBpbiBTcGF0aWFsCiAgICAgICAgTmF2aWdh
dGlvbi4KCiAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CiAgICAgICAgKFdlYkNv
cmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CiAgICAgICAg
KFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbik6
CiAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZGVlcEZpbmRGb2N1c2FibGVOb2Rl
SW5EaXJlY3Rpb24pOgogICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJiZTdiN2Uu
LjQ3OTE4NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDEyICsxLDM4IEBACiAyMDEwLTA0LTE5ICBBbnRvbmlvIEdvbWVzICA8dG9u
aWtpdG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CiAKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uOiBhZGFwdCB0aGUgbG9naWMgb2Yge2RlZXB9
ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbiB0byB3b3JrIHdpdGggY29udGFpbmVyIG5vZGVz
LCBub3QgRG9jdW1lbnQqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzgwMworCisgICAgICAgIEluc3RlYWQgb2YgcmVjZWl2aW5nIGEgRG9jdW1lbnQg
cG9pbnRlciBhcyBpbmNvbWluZyBwYXJhbWV0ZXIsIHBhdGNoIG1vZGlmaWVzCisgICAgICAgIGZp
bmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gYW5kIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGly
ZWN0aW9uIG1ldGhvZHMgdG8KKyAgICAgICAgcmVjZWl2ZSBhIE5vZGUgcG9pbnRlciBhcyBzdGFy
dCBmb3IgY29udGVudCB0cmF2ZXJzYWwuCisgICAgICAgIFRoaXMgd2F5IHdlIGNhbiBtYWtlIGdv
b2QgdXNlIG9mIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uIHRvIHRyYXZlcnNlCisg
ICAgICAgIG90aGVyIHNjcm9sbGFibGUgY29udGFpbmVyIGxpa2Ugc2Nyb2xsYWJsZSBkaXYncywg
YW5kIG5vdCBvbmx5IGZyYW1lcyBvciBpZnJhbWVzLgorCisgICAgICAgIFBhdGNoIGFsc28gbWFr
ZXMgdXNlIG9mICd3aGlsZScgaW5zdGVhZCBvZiAnZm9yJyB0byBsb29wIGNvbnRyb2wsIHRoYXQg
Z2l2ZXMgbW92ZQorICAgICAgICBmbGV4aWJpbGl0eSB0byB0aGUgaW5jcmVtZW50YWwgc3RlcDog
ZS5nLiBpZiBhIHNjcm9sbGFibGUgZGl2IHdhcyBwcm9jZXNzZWQsIHRoZSBpbmNyZW1lbnRhbAor
ICAgICAgICBzdGVwIGluIHRoZSBsb29wIGRvZXMgbm90IGhhdmUgdG8gZG8gbm9kZS0+dHJhdmVy
c2VOZXh0Tm9kZSgpIGJ1dCBub2RlLT50cmF2ZXJzZU5leHRTaWJsaW5nKCkuCisKKyAgICAgICAg
Tm8gYmVoYXZpb3IgY2hhbmdlLiBJdCBpcyBhIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIHNj
cm9sbGFibGUgY29udGFpbmVycyBpbiBTcGF0aWFsCisgICAgICAgIE5hdmlnYXRpb24uCisKKyAg
ICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1
c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJl
Y3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisKKzIwMTAtMDQtMTkg
IEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb246IGF0IEB1
cGRhdGVGb2N1c0NhbmRpZGF0ZUlmQ2xvc2VyIG1ha2UgYW4gYXNzaWdubWVudCBzaG9ydGN1dCB3
aGVuIEZvY3VzQ2FuZGlkYXRlIGlzIG51bGwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3ODAyCiAKICAgICAgICAgSW4gdXBkYXRlRm9jdXNDYW5kaWRh
dGVJZkNsb3NlciBtZXRob2QsIHdlIGRvIGFsbCBiYWlsIG91dCBjaGVja3MgaW4gdGhlIGJlZ2lu
aW5nIG9mCiAgICAgICAgIHRoZSBtZXRob2QgYm9keS4gSWYgYWZ0ZXIgdGhvc2UgYmFpbCBvdXQg
Y2hlY2tzLCBubyAiYmVzdCBGb2N1c0NhbmRpZGF0ZSIgaGFzIGJlZW4gdGFrZW4KICAgICAgICAg
eWV0IChpLmUuIGZvY3VzQ2FuZGlkYXRlLmlzTnVsbCgpID09IHRydWUpLCB3ZSBjYW4gc2FmZWx5
IHRha2UgdGhlIGN1cnJlbnQgY2FuZGlkYXRlLAogICAgICAgICBhbmQgZXhpdCBlYXJsaWVyLgog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDZkYjllZjQuLjk0ODQyY2MgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMDAsMTcgKzMwMCwxNyBAQCBib29sIEZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEtleWJvYQogICAgICAgICAvLyAnaW5pdGlhbEZvY3VzJyBpcyBzZXQgdG8gdHJ1ZSBzbyB0aGUg
Y2hyb21lIGlzIG5vdCBmb2N1c2VkLgogICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKHRhYkRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogICAgIH0KIAogICAgIC8vIE1v
dmUgdXAgaW4gdGhlIGNoYWluIG9mIG5lc3RlZCBmcmFtZXMuCiAgICAgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLT50b3AoKTsKIAogICAgIEZvY3VzQ2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRlOwotICAg
IGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWRO
b2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBmb2N1c0NhbmRpZGF0ZSk7CisgICAgZmluZEZvY3VzYWJs
ZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKS0+Zmlyc3RDaGlsZCgpLCBmb2N1c2Vk
Tm9kZSwgZGlyZWN0aW9uLCBldmVudCwgZm9jdXNDYW5kaWRhdGUpOwogCiAgICAgTm9kZSogbm9k
ZSA9IGZvY3VzQ2FuZGlkYXRlLm5vZGU7CiAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0VsZW1l
bnROb2RlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEg
ZG9jdW1lbnQgaGVyZS4KICAgICAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1l
KCk7CiAgICAgICAgIHNjcm9sbEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzg1LDc3ICszODUsMTAzIEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIoTm9kZSogZm9jdXNlZE5vZGUsIGNvbnN0IEZv
Y3VzQ2FuZGlkYXRlCiAgICAgICAgIC8vIGRpZmZlcmVudCBkb2N1bWVudCwgd2Ugb25seSBjb25z
aWRlciB0byBjaGFuZ2UgZm9jdXMgaWYgdGhlcmUgaXMgbm90CiAgICAgICAgIC8vIGFub3RoZXIg
YWxyZWFkeSBnb29kIGZvY3VzYWJsZSBjYW5kaWRhdGUgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMg
Zm9jdXNlZE5vZGUuCiAgICAgICAgIGlmICghKChpc0luUm9vdERvY3VtZW50KGNhbmRpZGF0ZS5u
b2RlKSAmJiAhaXNJblJvb3REb2N1bWVudChmb2N1c2VkTm9kZSkpCiAgICAgICAgICAgICAmJiBm
b2N1c2VkTm9kZS0+ZG9jdW1lbnQoKSA9PSBjbG9zZXN0LmRvY3VtZW50KCkpKQogICAgICAgICAg
ICAgY2xvc2VzdCA9IGNhbmRpZGF0ZTsKICAgICB9CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVy
OjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSog
Zm9jdXNlZE5vZGUsCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRp
cmVjdGlvbihOb2RlKiBvdXR0ZXIsIE5vZGUqIGZvY3VzZWROb2RlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRh
dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGb2N1c0NhbmRpZGF0ZSYgY2FuZGlkYXRlUGFyZW50KQogewotICAgIEFTU0VSVChkb2N1
bWVudCk7Ci0gICAgQVNTRVJUKGNhbmRpZGF0ZVBhcmVudC5pc051bGwoKSB8fCBzdGF0aWNfY2Fz
dDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGVQYXJlbnQubm9kZSkpOworICAgIEFT
U0VSVChvdXR0ZXIpOworICAgIEFTU0VSVChjYW5kaWRhdGVQYXJlbnQuaXNOdWxsKCkKKyAgICAg
ICAgfHwgY2FuZGlkYXRlUGFyZW50Lm5vZGUtPmhhc1RhZ05hbWUoZnJhbWVUYWcpCisgICAgICAg
IHx8IGNhbmRpZGF0ZVBhcmVudC5ub2RlLT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpOwogCiAgICAg
Ly8gV2FsayBhbGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgY2xvc2VzdEZvY3VzQ2FuZGlk
YXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIgbm9kZS4KLSAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9
IGRvY3VtZW50LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRl
LT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICBOb2RlKiBjYW5kaWRhdGUgPSBvdXR0ZXI7Cisg
ICAgd2hpbGUgKGNhbmRpZGF0ZSkgewogICAgICAgICAvLyBJbm5lciBkb2N1bWVudHMgY2FzZS4K
IAogICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpCi0gICAgICAg
ICAgICBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmb2N1c2VkTm9kZSwgY2FuZGlk
YXRlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOworICAgICAgICAg
ICAgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oY2FuZGlkYXRlLCBmb2N1c2VkTm9k
ZSwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKTsKICAgICAgICAgZWxz
ZSBpZiAoY2FuZGlkYXRlICE9IGZvY3VzZWROb2RlICYmIGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZv
Y3VzYWJsZShldmVudCkpIHsKICAgICAgICAgICAgIEZvY3VzQ2FuZGlkYXRlIGN1cnJlbnRGb2N1
c0NhbmRpZGF0ZShjYW5kaWRhdGUpOwogCiAgICAgICAgICAgICAvLyBHZXQgZGlzdGFuY2UgYW5k
IGFsaWdubWVudCBmcm9tIGN1cnJlbnQgY2FuZGlkYXRlLgogICAgICAgICAgICAgZGlzdGFuY2VE
YXRhRm9yTm9kZShkaXJlY3Rpb24sIGZvY3VzZWROb2RlLCBjdXJyZW50Rm9jdXNDYW5kaWRhdGUp
OwogCiAgICAgICAgICAgICAvLyBCYWlsIG91dCBpZiBkaXN0YW5jZSBpcyBtYXhpbXVtLgotICAg
ICAgICAgICAgaWYgKGN1cnJlbnRGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSA9PSBtYXhEaXN0YW5j
ZSgpKQorICAgICAgICAgICAgaWYgKGN1cnJlbnRGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSA9PSBt
YXhEaXN0YW5jZSgpKSB7CisgICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50
cmF2ZXJzZU5leHROb2RlKG91dHRlci0+cGFyZW50KCkpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBJZiBjYW5kaWRhdGVQYXJlbnQg
aXMgbm90IG51bGwsIGl0IG1lYW5zIHRoYXQgd2UgYXJlIGluIGEgcmVjdXJzaXZlIGNhbGwKICAg
ICAgICAgICAgIC8vIGZyb20gZGVlcEZpbmVGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gKGkuZS4g
cHJvY2Vzc2luZyBhbiBlbGVtZW50IGluIGFuIGlmcmFtZSksCiAgICAgICAgICAgICAvLyBhbmQg
aG9sZHMgdGhlIGRpc3RhbmNlIGFuZCBhbGlnbm1lbnQgZGF0YSBvZiB0aGUgaWZyYW1lIGVsZW1l
bnQgaXRzZWxmLgogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVQYXJlbnQuaXNOdWxsKCkpIHsK
ICAgICAgICAgICAgICAgICBjdXJyZW50Rm9jdXNDYW5kaWRhdGUucGFyZW50QWxpZ25tZW50ID0g
Y2FuZGlkYXRlUGFyZW50LmFsaWdubWVudDsKICAgICAgICAgICAgICAgICBjdXJyZW50Rm9jdXND
YW5kaWRhdGUucGFyZW50RGlzdGFuY2UgPSBjYW5kaWRhdGVQYXJlbnQuZGlzdGFuY2U7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIoZm9j
dXNlZE5vZGUsIGN1cnJlbnRGb2N1c0NhbmRpZGF0ZSwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKTsK
ICAgICAgICAgfQorCisgICAgICAgIGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS0+dHJhdmVyc2VOZXh0
Tm9kZShvdXR0ZXItPnBhcmVudCgpKTsKICAgICB9CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVy
OjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihOb2RlKiBmb2N1c2VkTm9kZSwgTm9k
ZSogY2FuZGlkYXRlLAordm9pZCBGb2N1c0NvbnRyb2xsZXI6OmRlZXBGaW5kRm9jdXNhYmxlTm9k
ZUluRGlyZWN0aW9uKE5vZGUqIGNvbnRhaW5lciwgTm9kZSogZm9jdXNlZE5vZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0NhbmRpZGF0ZSYgY2xv
c2VzdEZvY3VzQ2FuZGlkYXRlKQogewotICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIg
PSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGUpOwotICAgIGlm
ICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAgIEFTU0VSVChjb250YWluZXItPmhhc1RhZ05h
bWUoZnJhbWVUYWcpIHx8IGNvbnRhaW5lci0+aGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IGNvbnRh
aW5lci0+aGFzVGFnTmFtZShkaXZUYWcpKTsKKworICAgIC8vIFRyYWNrIGlmIGZvY3VzZWROb2Rl
IGlzIGEgZGVzY2VuZGFudCBvciBub3Qgb2YgdGhlIGN1cnJlbnQgY29udGFpbmVyIG5vZGUgYmVp
bmcgcHJvY2Vzc2VkLgorICAgIGJvb2wgZGVzY2VuZGFudE9mQ29udGFpbmVyID0gZmFsc2U7Cisg
ICAgTm9kZSogZmlyc3RDaGlsZCA9IDA7CisKKyAgICAvLyBJZnJhbWUgb3IgRnJhbWUuCisgICAg
aWYgKGNvbnRhaW5lci0+aGFzVGFnTmFtZShmcmFtZVRhZykgfHwgY29udGFpbmVyLT5oYXNUYWdO
YW1lKGlmcmFtZVRhZykpIHsKKworICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
ID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY29udGFpbmVyKTsKKyAgICAg
ICAgaWYgKCFvd25lci0+Y29udGVudEZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgRG9jdW1lbnQqIGlubmVyRG9jdW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRv
Y3VtZW50KCk7CisgICAgICAgIGlmICghaW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBkZXNjZW5kYW50T2ZDb250YWluZXIgPSBpbm5lckRvY3VtZW50ID09IGZv
Y3VzZWROb2RlLT5kb2N1bWVudCgpOworICAgICAgICBmaXJzdENoaWxkID0gaW5uZXJEb2N1bWVu
dC0+Zmlyc3RDaGlsZCgpOworCisgICAgfQorCisgICAgaWYgKGRlc2NlbmRhbnRPZkNvbnRhaW5l
cikgeworICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGZpcnN0Q2hpbGQsIGZv
Y3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOwogICAg
ICAgICByZXR1cm47CisgICAgfQogCi0gICAgRG9jdW1lbnQqIGlubmVyRG9jdW1lbnQgPSBvd25l
ci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFpbm5lckRvY3VtZW50KQor
ICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGNvbnRhaW5lciBlbGVtZW50IGl0c2VsZiBpcyBh
IGdvb2QgY2FuZGlkYXRlCisgICAgLy8gdG8gbW92ZSBmb2N1cyB0by4gSWYgaXQgaXMsIHRoZW4g
d2UgdHJhdmVyc2UgaXRzIGlubmVyIG5vZGVzLgorICAgIEZvY3VzQ2FuZGlkYXRlIGNhbmRpZGF0
ZVBhcmVudCA9IEZvY3VzQ2FuZGlkYXRlKGNvbnRhaW5lcik7CisgICAgZGlzdGFuY2VEYXRhRm9y
Tm9kZShkaXJlY3Rpb24sIGZvY3VzZWROb2RlLCBjYW5kaWRhdGVQYXJlbnQpOworCisgICAgLy8g
QmFpbCBvdXQgaWYgZGlzdGFuY2UgaXMgbWF4aW11bS4KKyAgICBpZiAoY2FuZGlkYXRlUGFyZW50
LmRpc3RhbmNlID09IG1heERpc3RhbmNlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChp
bm5lckRvY3VtZW50ID09IGZvY3VzZWROb2RlLT5kb2N1bWVudCgpKQotICAgICAgICBmaW5kRm9j
dXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQsIGZvY3VzZWROb2RlLCBkaXJlY3Rp
b24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOwotICAgIGVsc2UgewotICAgICAgICAv
LyBDaGVjayBpZiB0aGUgY3VycmVudCB7aX1mcmFtZSBlbGVtZW50IGl0c2VsZiBpcyBhIGdvb2Qg
Y2FuZGlkYXRlCi0gICAgICAgIC8vIHRvIG1vdmUgZm9jdXMgdG8uIElmIGl0IGlzLCB0aGVuIHdl
IHRyYXZlcnNlIGl0cyBpbm5lciBub2Rlcy4KLSAgICAgICAgRm9jdXNDYW5kaWRhdGUgY2FuZGlk
YXRlUGFyZW50ID0gRm9jdXNDYW5kaWRhdGUoY2FuZGlkYXRlKTsKLSAgICAgICAgZGlzdGFuY2VE
YXRhRm9yTm9kZShkaXJlY3Rpb24sIGZvY3VzZWROb2RlLCBjYW5kaWRhdGVQYXJlbnQpOwotCi0g
ICAgICAgIC8vIEZJWE1FOiBDb25zaWRlciBhbGlnbm1lbnQ/Ci0gICAgICAgIGlmIChjYW5kaWRh
dGVQYXJlbnQuZGlzdGFuY2UgPCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlzdGFuY2UpCi0gICAg
ICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQsIGZvY3Vz
ZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUsIGNhbmRpZGF0
ZVBhcmVudCk7Ci0gICAgfQorICAgIC8vIEZJWE1FOiBDb25zaWRlciBhbGlnbm1lbnQ/CisgICAg
aWYgKGNhbmRpZGF0ZVBhcmVudC5kaXN0YW5jZSA8IGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5kaXN0
YW5jZSkKKyAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmaXJzdENoaWxkLCBm
b2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLCBjYW5k
aWRhdGVQYXJlbnQpOwogfQogCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMo
Tm9kZSAqbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CiAgICAgQVNTRVJUKG5vZGUtPmlzQ29u
dGVudEVkaXRhYmxlKCkpOwogCiAgICAgTm9kZSogcm9vdCA9IG5vZGUtPnJvb3RFZGl0YWJsZUVs
ZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCBkZmEzNzgwLi40NDEwODMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5oCkBAIC01OCwxOSArNTgsMjAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRGb2N1c2VkKGJvb2wpOwogICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4g
bV9pc0ZvY3VzZWQ7IH0KIAogcHJpdmF0ZToKICAgICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKICAgICBib29sIGFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wg
aW5pdGlhbEZvY3VzKTsKIAotICAgIHZvaWQgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihE
b2N1bWVudCosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIEZvY3VzQ2Fu
ZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUsCisgICAgdm9pZCBmaW5kRm9jdXNhYmxlTm9k
ZUluRGlyZWN0aW9uKE5vZGUqIG91dHRlciwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBLZXlib2Fy
ZEV2ZW50KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNDYW5k
aWRhdGUmIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgRm9jdXNDYW5kaWRhdGUmIHBhcmVudENhbmRpZGF0ZSA9IEZvY3Vz
Q2FuZGlkYXRlKCkpOwotICAgIHZvaWQgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24o
Tm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIEZvY3VzQ2FuZGlk
YXRlJik7CisgICAgdm9pZCBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihOb2RlKiBj
b250YWluZXIsIE5vZGUqIGZvY3VzZWQsIEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kiwg
Rm9jdXNDYW5kaWRhdGUmKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBSZWZQdHI8RnJhbWU+
IG1fZm9jdXNlZEZyYW1lOwogICAgIGJvb2wgbV9pc0FjdGl2ZTsKICAgICBib29sIG1faXNGb2N1
c2VkOwogICAgIGJvb2wgbV9pc0NoYW5naW5nRm9jdXNlZEZyYW1lOwogfTsKIAotLSAKMS42LjAu
NAoK
</data>
<flag name="commit-queue"
          id="37663"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54057</attachid>
            <date>2010-04-22 06:49:33 -0700</date>
            <delta_ts>2010-05-06 09:19:05 -0700</delta_ts>
            <desc>(committer in r58882, reviewed by kenneth) patch v3</desc>
            <filename>0001-2010-04-19-Antonio-Gomes-tonikitoo-webkit.org.patch</filename>
            <type>text/plain</type>
            <size>11756</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBjOTlkMWRlY2M3MjZhZmQwOGExNDFmOTM4MTViNTMzZWIyMWYzZWMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAxOSBBcHIgMjAxMCAxMTo1NDo0MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIDIw
MTAtMDQtMTkgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KCiAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFNwYXRpYWwgTmF2aWdhdGlvbjog
YWRhcHQgdGhlIGxvZ2ljIG9mIHtkZWVwfWZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gdG8g
ZG8gdHJhdmVyc2FsIHN0YXJ0aW5nIGZyb20gTm9kZSogbm90IERvY3VtZW50KgogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzgwMwoKICAgICAgICBJbnN0
ZWFkIG9mIHJlY2VpdmluZyBhIERvY3VtZW50IHBvaW50ZXIgYXMgaW5jb21pbmcgcGFyYW1ldGVy
LCBwYXRjaCBtb2RpZmllcwogICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gYW5k
IGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uIG1ldGhvZHMgdG8KICAgICAgICByZWNl
aXZlIGEgTm9kZSBwb2ludGVyIGFzIHN0YXJ0IGZvciBjb250ZW50IHRyYXZlcnNhbC4KICAgICAg
ICBUaGlzIHdheSB3ZSBjYW4gbWFrZSBnb29kIHVzZSBvZiBkZWVwRmluZEZvY3VzYWJsZU5vZGVJ
bkRpcmVjdGlvbiB0byB0cmF2ZXJzZQogICAgICAgIG90aGVyIHNjcm9sbGFibGUgY29udGFpbmVy
IGxpa2Ugc2Nyb2xsYWJsZSBkaXYncywgYW5kIG5vdCBvbmx5IGZyYW1lcyBvciBpZnJhbWVzLgoK
ICAgICAgICBQYXRjaCBhbHNvIG1ha2VzIHVzZSBvZiAnd2hpbGUnIGluc3RlYWQgb2YgJ2Zvcicg
dG8gbG9vcCBjb250cm9sLCB0aGF0IGdpdmVzIG1vdmUKICAgICAgICBmbGV4aWJpbGl0eSB0byB0
aGUgaW5jcmVtZW50YWwgc3RlcDogZS5nLiBpZiBhIHNjcm9sbGFibGUgZGl2IHdhcyBwcm9jZXNz
ZWQsIHRoZSBpbmNyZW1lbnRhbAogICAgICAgIHN0ZXAgaW4gdGhlIGxvb3AgZG9lcyBub3QgaGF2
ZSB0byBkbyBub2RlLT50cmF2ZXJzZU5leHROb2RlKCkgYnV0IG5vZGUtPnRyYXZlcnNlTmV4dFNp
YmxpbmcoKS4KCiAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBJdCBpcyBhIHByZXBhcmF0aW9u
IGZvciBzdXBwb3J0aW5nIHNjcm9sbGFibGUgY29udGFpbmVycyBpbiBTcGF0aWFsCiAgICAgICAg
TmF2aWdhdGlvbi4KCiAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CiAgICAgICAg
KFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CiAg
ICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbik6CiAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZGVlcEZpbmRGb2N1c2Fi
bGVOb2RlSW5EaXJlY3Rpb24pOgogICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFj
OGVmZGUuLjM2YzE5YzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDggKzEsMzQgQEAKKzIwMTAtMDQtMTkgIEFudG9uaW8gR29tZXMg
IDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb246IGFkYXB0IHRoZSBsb2dpYyBvZiB7
ZGVlcH1maW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uIHRvIGRvIHRyYXZlcnNhbCBzdGFydGlu
ZyBmcm9tIE5vZGUqIG5vdCBEb2N1bWVudCoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3ODAzCisKKyAgICAgICAgSW5zdGVhZCBvZiByZWNlaXZpbmcg
YSBEb2N1bWVudCBwb2ludGVyIGFzIGluY29taW5nIHBhcmFtZXRlciwgcGF0Y2ggbW9kaWZpZXMK
KyAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbiBhbmQgZGVlcEZpbmRGb2N1c2Fi
bGVOb2RlSW5EaXJlY3Rpb24gbWV0aG9kcyB0bworICAgICAgICByZWNlaXZlIGEgTm9kZSBwb2lu
dGVyIGFzIHN0YXJ0IGZvciBjb250ZW50IHRyYXZlcnNhbC4KKyAgICAgICAgVGhpcyB3YXkgd2Ug
Y2FuIG1ha2UgZ29vZCB1c2Ugb2YgZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24gdG8g
dHJhdmVyc2UKKyAgICAgICAgb3RoZXIgc2Nyb2xsYWJsZSBjb250YWluZXIgbGlrZSBzY3JvbGxh
YmxlIGRpdidzLCBhbmQgbm90IG9ubHkgZnJhbWVzIG9yIGlmcmFtZXMuCisKKyAgICAgICAgUGF0
Y2ggYWxzbyBtYWtlcyB1c2Ugb2YgJ3doaWxlJyBpbnN0ZWFkIG9mICdmb3InIHRvIGxvb3AgY29u
dHJvbCwgdGhhdCBnaXZlcyBtb3ZlCisgICAgICAgIGZsZXhpYmlsaXR5IHRvIHRoZSBpbmNyZW1l
bnRhbCBzdGVwOiBlLmcuIGlmIGEgc2Nyb2xsYWJsZSBkaXYgd2FzIHByb2Nlc3NlZCwgdGhlIGlu
Y3JlbWVudGFsCisgICAgICAgIHN0ZXAgaW4gdGhlIGxvb3AgZG9lcyBub3QgaGF2ZSB0byBkbyBu
b2RlLT50cmF2ZXJzZU5leHROb2RlKCkgYnV0IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKS4K
KworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuIEl0IGlzIGEgcHJlcGFyYXRpb24gZm9yIHN1
cHBvcnRpbmcgc2Nyb2xsYWJsZSBjb250YWluZXJzIGluIFNwYXRpYWwKKyAgICAgICAgTmF2aWdh
dGlvbi4KKworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJs
ZU5vZGVJbkRpcmVjdGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKwog
MjAxMC0wNC0yMSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCiAKICAgICAgICAgQ3JlYXRlIGEgdGVtcGxhdGUgZm9yIGNy
ZWF0aW5nIHJlZmVyZW5jZS1jb3VudGVkIFdpbmRvd3MgR0RJIGhhbmRsZXMuCiAgICAgICAgIFJl
ZmFjdG9yIFJlZkNvdW50ZWRIRk9OVCB0byB1c2UgdGhpcyB0ZW1wbGF0ZS4KIAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc5NTIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKaW5kZXggNmRiOWVmNC4uOGVkN2ExNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKQEAgLTMwMCwxNyArMzAwLDE3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNl
Rm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hCiAgICAg
ICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBjaHJvbWUgaXMgbm90
IGZvY3VzZWQuCiAgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIodGFi
RGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CiAgICAgfQogCiAgICAgLy8gTW92ZSB1cCBpbiB0aGUg
Y2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KICAgICBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRvcCgp
OwogCiAgICAgRm9jdXNDYW5kaWRhdGUgZm9jdXNDYW5kaWRhdGU7Ci0gICAgZmluZEZvY3VzYWJs
ZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlv
biwgZXZlbnQsIGZvY3VzQ2FuZGlkYXRlKTsKKyAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0
aW9uKGZyYW1lLT5kb2N1bWVudCgpLT5maXJzdENoaWxkKCksIGZvY3VzZWROb2RlLCBkaXJlY3Rp
b24sIGV2ZW50LCBmb2N1c0NhbmRpZGF0ZSk7CiAKICAgICBOb2RlKiBub2RlID0gZm9jdXNDYW5k
aWRhdGUubm9kZTsKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgewog
ICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJl
LgogICAgICAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAgICAg
c2Nyb2xsSW5EaXJlY3Rpb24oZnJhbWUsIGRpcmVjdGlvbik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC0zODUsNzcgKzM4NSwxMDMgQEAgc3RhdGljIHZvaWQgdXBkYXRlRm9jdXND
YW5kaWRhdGVJZkNsb3NlcihOb2RlKiBmb2N1c2VkTm9kZSwgY29uc3QgRm9jdXNDYW5kaWRhdGUK
ICAgICAgICAgLy8gZGlmZmVyZW50IGRvY3VtZW50LCB3ZSBvbmx5IGNvbnNpZGVyIHRvIGNoYW5n
ZSBmb2N1cyBpZiB0aGVyZSBpcyBub3QKICAgICAgICAgLy8gYW5vdGhlciBhbHJlYWR5IGdvb2Qg
Zm9jdXNhYmxlIGNhbmRpZGF0ZSBpbiB0aGUgc2FtZSBkb2N1bWVudCBhcyBmb2N1c2VkTm9kZS4K
ICAgICAgICAgaWYgKCEoKGlzSW5Sb290RG9jdW1lbnQoY2FuZGlkYXRlLm5vZGUpICYmICFpc0lu
Um9vdERvY3VtZW50KGZvY3VzZWROb2RlKSkKICAgICAgICAgICAgICYmIGZvY3VzZWROb2RlLT5k
b2N1bWVudCgpID09IGNsb3Nlc3QuZG9jdW1lbnQoKSkpCiAgICAgICAgICAgICBjbG9zZXN0ID0g
Y2FuZGlkYXRlOwogICAgIH0KIH0KIAotdm9pZCBGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2Fi
bGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBmb2N1c2VkTm9kZSwK
K3ZvaWQgRm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKE5vZGUq
IG91dHRlciwgTm9kZSogZm9jdXNlZE5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqIGV2ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRm9jdXNDYW5kaWRhdGUmIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZvY3VzQ2Fu
ZGlkYXRlJiBjYW5kaWRhdGVQYXJlbnQpCiB7Ci0gICAgQVNTRVJUKGRvY3VtZW50KTsKLSAgICBB
U1NFUlQoY2FuZGlkYXRlUGFyZW50LmlzTnVsbCgpIHx8IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93
bmVyRWxlbWVudCo+KGNhbmRpZGF0ZVBhcmVudC5ub2RlKSk7CisgICAgQVNTRVJUKG91dHRlcik7
CisgICAgQVNTRVJUKGNhbmRpZGF0ZVBhcmVudC5pc051bGwoKQorICAgICAgICB8fCBjYW5kaWRh
dGVQYXJlbnQubm9kZS0+aGFzVGFnTmFtZShmcmFtZVRhZykKKyAgICAgICAgfHwgY2FuZGlkYXRl
UGFyZW50Lm5vZGUtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSk7CiAKICAgICAvLyBXYWxrIGFsbCB0
aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUgaWYgd2UgZmlu
ZCBhIG5lYXJlciBub2RlLgotICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZp
cnN0Q2hpbGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4
dE5vZGUoKSkgeworICAgIE5vZGUqIGNhbmRpZGF0ZSA9IG91dHRlcjsKKyAgICB3aGlsZSAoY2Fu
ZGlkYXRlKSB7CiAgICAgICAgIC8vIElubmVyIGRvY3VtZW50cyBjYXNlLgogCiAgICAgICAgIGlm
IChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKLSAgICAgICAgICAgIGRlZXBGaW5k
Rm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5kaWRhdGUsIGRpcmVjdGlv
biwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgICAgICAgICBkZWVwRmluZEZv
Y3VzYWJsZU5vZGVJbkRpcmVjdGlvbihjYW5kaWRhdGUsIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24s
IGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOwogICAgICAgICBlbHNlIGlmIChjYW5kaWRh
dGUgIT0gZm9jdXNlZE5vZGUgJiYgY2FuZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50
KSkgewogICAgICAgICAgICAgRm9jdXNDYW5kaWRhdGUgY3VycmVudEZvY3VzQ2FuZGlkYXRlKGNh
bmRpZGF0ZSk7CiAKICAgICAgICAgICAgIC8vIEdldCBkaXN0YW5jZSBhbmQgYWxpZ25tZW50IGZy
b20gY3VycmVudCBjYW5kaWRhdGUuCiAgICAgICAgICAgICBkaXN0YW5jZURhdGFGb3JOb2RlKGRp
cmVjdGlvbiwgZm9jdXNlZE5vZGUsIGN1cnJlbnRGb2N1c0NhbmRpZGF0ZSk7CiAKICAgICAgICAg
ICAgIC8vIEJhaWwgb3V0IGlmIGRpc3RhbmNlIGlzIG1heGltdW0uCi0gICAgICAgICAgICBpZiAo
Y3VycmVudEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlID09IG1heERpc3RhbmNlKCkpCisgICAgICAg
ICAgICBpZiAoY3VycmVudEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlID09IG1heERpc3RhbmNlKCkp
IHsKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5v
ZGUob3V0dGVyLT5wYXJlbnQoKSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIC8vIElmIGNhbmRpZGF0ZVBhcmVudCBpcyBub3QgbnVsbCwg
aXQgbWVhbnMgdGhhdCB3ZSBhcmUgaW4gYSByZWN1cnNpdmUgY2FsbAogICAgICAgICAgICAgLy8g
ZnJvbSBkZWVwRmluZUZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbiAoaS5lLiBwcm9jZXNzaW5nIGFu
IGVsZW1lbnQgaW4gYW4gaWZyYW1lKSwKICAgICAgICAgICAgIC8vIGFuZCBob2xkcyB0aGUgZGlz
dGFuY2UgYW5kIGFsaWdubWVudCBkYXRhIG9mIHRoZSBpZnJhbWUgZWxlbWVudCBpdHNlbGYuCiAg
ICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZVBhcmVudC5pc051bGwoKSkgewogICAgICAgICAgICAg
ICAgIGN1cnJlbnRGb2N1c0NhbmRpZGF0ZS5wYXJlbnRBbGlnbm1lbnQgPSBjYW5kaWRhdGVQYXJl
bnQuYWxpZ25tZW50OwogICAgICAgICAgICAgICAgIGN1cnJlbnRGb2N1c0NhbmRpZGF0ZS5wYXJl
bnREaXN0YW5jZSA9IGNhbmRpZGF0ZVBhcmVudC5kaXN0YW5jZTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgdXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcihmb2N1c2VkTm9kZSwgY3Vy
cmVudEZvY3VzQ2FuZGlkYXRlLCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOwogICAgICAgICB9CisK
KyAgICAgICAgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2RlKG91dHRlci0+
cGFyZW50KCkpOwogICAgIH0KIH0KIAotdm9pZCBGb2N1c0NvbnRyb2xsZXI6OmRlZXBGaW5kRm9j
dXNhYmxlTm9kZUluRGlyZWN0aW9uKE5vZGUqIGZvY3VzZWROb2RlLCBOb2RlKiBjYW5kaWRhdGUs
Cit2b2lkIEZvY3VzQ29udHJvbGxlcjo6ZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24o
Tm9kZSogY29udGFpbmVyLCBOb2RlKiBmb2N1c2VkTm9kZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5k
aWRhdGUpCiB7Ci0gICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0
PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7Ci0gICAgaWYgKCFvd25lci0+Y29u
dGVudEZyYW1lKCkpCisgICAgQVNTRVJUKGNvbnRhaW5lci0+aGFzVGFnTmFtZShmcmFtZVRhZykg
fHwgY29udGFpbmVyLT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpOworCisgICAgLy8gVHJhY2sgaWYg
Zm9jdXNlZE5vZGUgaXMgYSBkZXNjZW5kYW50IG9yIG5vdCBvZiB0aGUgY3VycmVudCBjb250YWlu
ZXIgbm9kZSBiZWluZyBwcm9jZXNzZWQuCisgICAgYm9vbCBkZXNjZW5kYW50T2ZDb250YWluZXIg
PSBmYWxzZTsKKyAgICBOb2RlKiBmaXJzdENoaWxkID0gMDsKKworICAgIC8vIElmcmFtZSBvciBG
cmFtZS4KKyAgICBpZiAoY29udGFpbmVyLT5oYXNUYWdOYW1lKGZyYW1lVGFnKSB8fCBjb250YWlu
ZXItPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkgeworCisgICAgICAgIEhUTUxGcmFtZU93bmVyRWxl
bWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjb250YWlu
ZXIpOworICAgICAgICBpZiAoIW93bmVyLT5jb250ZW50RnJhbWUoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVyLT5jb250ZW50
RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFpbm5lckRvY3VtZW50KQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGRlc2NlbmRhbnRPZkNvbnRhaW5lciA9IGlubmVyRG9j
dW1lbnQgPT0gZm9jdXNlZE5vZGUtPmRvY3VtZW50KCk7CisgICAgICAgIGZpcnN0Q2hpbGQgPSBp
bm5lckRvY3VtZW50LT5maXJzdENoaWxkKCk7CisKKyAgICB9CisKKyAgICBpZiAoZGVzY2VuZGFu
dE9mQ29udGFpbmVyKSB7CisgICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oZmly
c3RDaGlsZCwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRp
ZGF0ZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBEb2N1bWVudCogaW5uZXJEb2N1
bWVudCA9IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWlubmVy
RG9jdW1lbnQpCisgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgY29udGFpbmVyIGVsZW1lbnQg
aXRzZWxmIGlzIGEgZ29vZCBjYW5kaWRhdGUKKyAgICAvLyB0byBtb3ZlIGZvY3VzIHRvLiBJZiBp
dCBpcywgdGhlbiB3ZSB0cmF2ZXJzZSBpdHMgaW5uZXIgbm9kZXMuCisgICAgRm9jdXNDYW5kaWRh
dGUgY2FuZGlkYXRlUGFyZW50ID0gRm9jdXNDYW5kaWRhdGUoY29udGFpbmVyKTsKKyAgICBkaXN0
YW5jZURhdGFGb3JOb2RlKGRpcmVjdGlvbiwgZm9jdXNlZE5vZGUsIGNhbmRpZGF0ZVBhcmVudCk7
CisKKyAgICAvLyBCYWlsIG91dCBpZiBkaXN0YW5jZSBpcyBtYXhpbXVtLgorICAgIGlmIChjYW5k
aWRhdGVQYXJlbnQuZGlzdGFuY2UgPT0gbWF4RGlzdGFuY2UoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGlubmVyRG9jdW1lbnQgPT0gZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkpCi0gICAg
ICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oaW5uZXJEb2N1bWVudCwgZm9jdXNlZE5v
ZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHtpfWZyYW1lIGVsZW1lbnQgaXRzZWxm
IGlzIGEgZ29vZCBjYW5kaWRhdGUKLSAgICAgICAgLy8gdG8gbW92ZSBmb2N1cyB0by4gSWYgaXQg
aXMsIHRoZW4gd2UgdHJhdmVyc2UgaXRzIGlubmVyIG5vZGVzLgotICAgICAgICBGb2N1c0NhbmRp
ZGF0ZSBjYW5kaWRhdGVQYXJlbnQgPSBGb2N1c0NhbmRpZGF0ZShjYW5kaWRhdGUpOwotICAgICAg
ICBkaXN0YW5jZURhdGFGb3JOb2RlKGRpcmVjdGlvbiwgZm9jdXNlZE5vZGUsIGNhbmRpZGF0ZVBh
cmVudCk7Ci0KLSAgICAgICAgLy8gRklYTUU6IENvbnNpZGVyIGFsaWdubWVudD8KLSAgICAgICAg
aWYgKGNhbmRpZGF0ZVBhcmVudC5kaXN0YW5jZSA8IGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5kaXN0
YW5jZSkKLSAgICAgICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oaW5uZXJEb2N1
bWVudCwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0
ZSwgY2FuZGlkYXRlUGFyZW50KTsKLSAgICB9CisgICAgLy8gRklYTUU6IENvbnNpZGVyIGFsaWdu
bWVudD8KKyAgICBpZiAoY2FuZGlkYXRlUGFyZW50LmRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2Fu
ZGlkYXRlLmRpc3RhbmNlKQorICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGZp
cnN0Q2hpbGQsIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5k
aWRhdGUsIGNhbmRpZGF0ZVBhcmVudCk7CiB9CiAKIHN0YXRpYyBib29sIHJlbGlucXVpc2hlc0Vk
aXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICBBU1NFUlQo
bm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSk7CiAKICAgICBOb2RlKiByb290ID0gbm9kZS0+cm9v
dEVkaXRhYmxlRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGRmYTM3ODAuLjQ0
MTA4MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTU4LDE5ICs1OCwyMCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCk7CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogCiBwcml2YXRlOgogICAgIGJvb2wgYWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogICAgIGJv
b2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2
ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogCi0gICAgdm9pZCBmaW5kRm9jdXNhYmxlTm9kZUlu
RGlyZWN0aW9uKERvY3VtZW50KiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiwgRm9jdXNDYW5kaWRhdGUmIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSwKKyAgICB2b2lkIGZpbmRG
b2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oTm9kZSogb3V0dGVyLCBOb2RlKiwgRm9jdXNEaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgcGFyZW50Q2FuZGlk
YXRlID0gRm9jdXNDYW5kaWRhdGUoKSk7Ci0gICAgdm9pZCBkZWVwRmluZEZvY3VzYWJsZU5vZGVJ
bkRpcmVjdGlvbihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kiwg
Rm9jdXNDYW5kaWRhdGUmKTsKKyAgICB2b2lkIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0
aW9uKE5vZGUqIGNvbnRhaW5lciwgTm9kZSogZm9jdXNlZCwgRm9jdXNEaXJlY3Rpb24sIEtleWJv
YXJkRXZlbnQqLCBGb2N1c0NhbmRpZGF0ZSYpOwogCiAgICAgUGFnZSogbV9wYWdlOwogICAgIFJl
ZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgYm9vbCBtX2lzQWN0aXZlOwogICAgIGJv
b2wgbV9pc0ZvY3VzZWQ7CiAgICAgYm9vbCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWU7CiB9Owog
Ci0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>