<?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>118179</bug_id>
          
          <creation_ts>2013-06-28 03:07:21 -0700</creation_ts>
          <short_desc>[ATK] Refactor code for translating offsets between WebCore a11y and ATK</short_desc>
          <delta_ts>2013-07-11 01:37:15 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>114871</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Mario Sanchez Prada">mario</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>904529</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-06-28 03:07:21 -0700</bug_when>
    <thetext>At the moment, and due to the extra flattening we do sometimes in WebKitGTK when it comes to exposing the accessibility hierarchy (e.g. list items and bullets get exposed as a single ATK Object) we need to do some adjustments whenever we need to consider offsets specified from the ATs (ATK world) and those handled internally in WebKit (WebCore a11y).

At the moment we have some snippets of code in the implementation of the AtkText interface, but it&apos;s sometimes not clear how to use them and so it would be good to refactor that code both to make it clearer and simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904575</commentid>
    <comment_count>1</comment_count>
      <attachid>205700</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-06-28 05:19:51 -0700</bug_when>
    <thetext>Created attachment 205700
Patch proposal

Here comes the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904717</commentid>
    <comment_count>2</comment_count>
      <attachid>205700</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-06-28 11:47:44 -0700</bug_when>
    <thetext>Comment on attachment 205700
Patch proposal

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

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:473
&gt; +static int listItemMarkerLengthForObject(const AccessibilityObject* object)

this only applies to LTR, maybe the method should be named to indicate that?

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:475
&gt; +    if (!object-&gt;isAccessibilityRenderObject())

you shouldn&apos;t have to check isAXRenderObject() -- renderer() is on every AXObject, so you just need to check if the renderer is 0 or not (which you&apos;re already doing)

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:482
&gt; +        String markerText = toRenderListItem(renderer)-&gt;markerTextWithSuffix();

this can be made into one line of code

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:491
&gt; +    if (!object-&gt;isAccessibilityRenderObject() || !object-&gt;isListItem())

AXrenderObject check is not necessary

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:500
&gt; +    if (!coreObject || !coreObject-&gt;isAccessibilityRenderObject() || !coreObject-&gt;isListItem())

AXRenderObject check not necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904928</commentid>
    <comment_count>3</comment_count>
      <attachid>205700</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-06-30 23:40:04 -0700</bug_when>
    <thetext>Comment on attachment 205700
Patch proposal

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [GTK] Refactor code for translating offsets between WebCore a11y and ATK

This probably affects the EFL port as well so a [ATK] tag may be more appropriate than [GTK].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904969</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-01 03:41:12 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 205700 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205700&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [GTK] Refactor code for translating offsets between WebCore a11y and ATK
&gt; 
&gt; This probably affects the EFL port as well so a [ATK] tag may be more appropriate than [GTK].

Yes, you are right. Now changing the title and removing the Gtk keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905374</commentid>
    <comment_count>5</comment_count>
      <attachid>205897</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-02 05:54:34 -0700</bug_when>
    <thetext>Created attachment 205897
Patch proposal

Thanks for the review, Chris. Now attaching a new patch addressing the issues you pointed out, see my comments below...

(In reply to comment #2)
&gt; (From update of attachment 205700 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205700&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:473
&gt; &gt; +static int listItemMarkerLengthForObject(const AccessibilityObject* object)
&gt; 
&gt; this only applies to LTR, maybe the method should be named to indicate that?

I already thought of that, but in the end I found it better, or at least more clear, not to do it since it&apos;s an internal matter from the point of view of that function. From the caller you just care about &quot;normalizing&quot; the offset for list items since it&apos;s an special element from the point of view of ATK (as we flatten it out together with the marker).

&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:475
&gt; &gt; +    if (!object-&gt;isAccessibilityRenderObject())
&gt; 
&gt; you shouldn&apos;t have to check isAXRenderObject() -- renderer() is on every AXObject, so you just need to check if the renderer is 0 or not (which you&apos;re already doing)

Ok.

&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:482
&gt; &gt; +        String markerText = toRenderListItem(renderer)-&gt;markerTextWithSuffix();
&gt; 
&gt; this can be made into one line of code

Done.

&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:491
&gt; &gt; +    if (!object-&gt;isAccessibilityRenderObject() || !object-&gt;isListItem())
&gt; 
&gt; AXrenderObject check is not necessary

Ok.

&gt; &gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:500
&gt; &gt; +    if (!coreObject || !coreObject-&gt;isAccessibilityRenderObject() || !coreObject-&gt;isListItem())
&gt; 
&gt; AXRenderObject check not necessary

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907388</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 09:49:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=205897) [details]
&gt; Patch proposal
&gt; 
&gt; Thanks for the review, Chris. Now attaching a new patch addressing the issues
&gt; you pointed out, see my comments below...

Ping reviewers? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907396</commentid>
    <comment_count>7</comment_count>
      <attachid>205897</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-07-10 10:28:44 -0700</bug_when>
    <thetext>Comment on attachment 205897
Patch proposal

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

&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:481
&gt; +        return toRenderListItem(renderer)-&gt;markerTextWithSuffix().length();

So why does this method return 0 for listItemMarker when language is RTL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907495</commentid>
    <comment_count>8</comment_count>
      <attachid>205897</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 17:47:38 -0700</bug_when>
    <thetext>Comment on attachment 205897
Patch proposal

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

&gt;&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:481
&gt;&gt; +        return toRenderListItem(renderer)-&gt;markerTextWithSuffix().length();
&gt; 
&gt; So why does this method return 0 for listItemMarker when language is RTL?

This is because depending on the text direction we expose the marker before or after the actual text for the list item, to better match how it&apos;s visually represented on screen.

Thus, if it&apos;s RTL, the list item marker will be appended after the list item text in the exposed AtkObject which means we do not need to do any adjustment to the offsets when translating from Atk to WebCore or viceversa.

However, it&apos;s true that then it&apos;s not an appropriate name for this function. Perhaps it&apos;s better to go back to the original name as the one I used in the original patch from bug 114871: offsetAdjustmentForObject(), or offsetAdjustmentForListItem(). What do you think?

PS: In any case, we should maybe rethink this idea of appending/prepending the list item marker depending on text direction. I&apos;ve checked what firefox does right now and they always prepend the list item marker when exposing AtkObjects for list items, regardless the text direction. In any case, that should be considered in a separate bug, if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907497</commentid>
    <comment_count>9</comment_count>
      <attachid>205897</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-07-10 17:50:45 -0700</bug_when>
    <thetext>Comment on attachment 205897
Patch proposal

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

&gt;&gt;&gt; Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp:481
&gt;&gt;&gt; +        return toRenderListItem(renderer)-&gt;markerTextWithSuffix().length();
&gt;&gt; 
&gt;&gt; So why does this method return 0 for listItemMarker when language is RTL?
&gt; 
&gt; This is because depending on the text direction we expose the marker before or after the actual text for the list item, to better match how it&apos;s visually represented on screen.
&gt; 
&gt; Thus, if it&apos;s RTL, the list item marker will be appended after the list item text in the exposed AtkObject which means we do not need to do any adjustment to the offsets when translating from Atk to WebCore or viceversa.
&gt; 
&gt; However, it&apos;s true that then it&apos;s not an appropriate name for this function. Perhaps it&apos;s better to go back to the original name as the one I used in the original patch from bug 114871: offsetAdjustmentForObject(), or offsetAdjustmentForListItem(). What do you think?
&gt; 
&gt; PS: In any case, we should maybe rethink this idea of appending/prepending the list item marker depending on text direction. I&apos;ve checked what firefox does right now and they always prepend the list item marker when exposing AtkObjects for list items, regardless the text direction. In any case, that should be considered in a separate bug, if needed.

offsetAdjustmentForListItem() is a good name i think</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907502</commentid>
    <comment_count>10</comment_count>
      <attachid>206420</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-10 18:19:22 -0700</bug_when>
    <thetext>Created attachment 206420
Patch proposal

Attaching new patch with the function name changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907519</commentid>
    <comment_count>11</comment_count>
      <attachid>206420</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-07-10 21:16:47 -0700</bug_when>
    <thetext>Comment on attachment 206420
Patch proposal

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

there&apos;s also tests you&apos;re unskipping too right

&gt; Source/WebCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=118179

missing explanation of bug

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

fix this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907538</commentid>
    <comment_count>12</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-11 00:41:56 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 206420 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206420&amp;action=review
&gt; 
&gt; there&apos;s also tests you&apos;re unskipping too right

Not here, this is just a refactor to make clearer when we translate offsets from ATK to WebCore and the other way around, that I&apos;m already using in further patches to remove the dependency of Pango.

&gt; &gt; Source/WebCore/ChangeLog:4
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=118179
&gt; 
&gt; missing explanation of bug

OOPS!. I&apos;ll add one

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests (OOPS!).
&gt; 
&gt; fix this line

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907541</commentid>
    <comment_count>13</comment_count>
      <attachid>206431</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-11 00:52:02 -0700</bug_when>
    <thetext>Created attachment 206431
Patch proposal

Attaching new patch with the ChangeLog updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907544</commentid>
    <comment_count>14</comment_count>
      <attachid>206431</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-07-11 00:55:37 -0700</bug_when>
    <thetext>Comment on attachment 206431
Patch proposal

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        between our ATK implementation and WebCore&apos;s accessiility layer.

misspelled:accessiility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907545</commentid>
    <comment_count>15</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-11 00:57:38 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 206431 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206431&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        between our ATK implementation and WebCore&apos;s accessiility layer.
&gt; 
&gt; misspelled:accessiility

Argh!! Anyway, thanks for the off-hours review. I&apos;ll fix that typo and push it as soon as I arrive in the office</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907562</commentid>
    <comment_count>16</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-11 01:37:15 -0700</bug_when>
    <thetext>Committed r152561: &lt;http://trac.webkit.org/changeset/152561&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205700</attachid>
            <date>2013-06-28 05:19:51 -0700</date>
            <delta_ts>2013-07-02 05:54:34 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2013-06-28-Mario-Sanchez-Prada-mario.prada-samsung.c.patch</filename>
            <type>text/plain</type>
            <size>8397</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBiMGU4MTU4MTVhZDhjMmJhMjE3ODA0MjAwZmE5MjAyZDgwMGMzY2NiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogRnJpLCAyOCBKdW4gMjAxMyAxMzowNTo1MyArMDEwMApTdWJqZWN0OiBb
UEFUQ0ggMS8yXSAyMDEzLTA2LTI4ICBNYXJpbyBTYW5jaGV6IFByYWRhIAogPG1hcmlvLnByYWRh
QHNhbXN1bmcuY29tPgoKICAgICAgICBbR1RLXSBSZWZhY3RvciBjb2RlIGZvciB0cmFuc2xhdGlu
ZyBvZmZzZXRzIGJldHdlZW4gV2ViQ29yZSBhMTF5IGFuZCBBVEsKICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTc5CgogICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KCiAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHA6CiAg
ICAgICAgKGxpc3RJdGVtTWFya2VyTGVuZ3RoRm9yT2JqZWN0KTogSGVscGVyIGZ1bmN0aW9uIHRv
IHJlZmFjdG9yIGNvZGUKICAgICAgICBuZWVkZWQgdG8gdHJhbnNsYXRlIG9mZnNldHMgZnJvbSBX
ZWJDb3JlIHRvIEFUSyB3b3JsZHMuIEN1cnJlbnRseQogICAgICAgIHJlbGF0ZWQgdG8gY29uc2lk
ZXJpbmcgbGlzdCBpdGVtIG1hcmtlcnMgaW4gTFRSIHRleHQgb25seS4KICAgICAgICAod2ViQ29y
ZU9mZnNldFRvQXRrT2Zmc2V0KTogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNvZGUKICAgICAg
ICByZWFkYWJpbGl0eSBwdXJwb3Nlcy4gSXQganVzdCBjYWxscyBsaXN0SXRlbU1hcmtlckxlbmd0
aEZvck9iamVjdC4KICAgICAgICAoYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KTogTGlrZXdpc2Uu
CiAgICAgICAgKGdldFNlbGVjdGlvbk9mZnNldHNGb3JPYmplY3QpOiBVc2Ugd2ViQ29yZU9mZnNl
dFRvQXRrT2Zmc2V0LgogICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldENhcmV0T2Zmc2V0
KTogVXNlIHdlYkNvcmVPZmZzZXRUb0F0a09mZnNldAogICAgICAgIHRvIHRyYW5zbGF0ZSBhbiBv
ZmZzZXQgZnJvbSBXZWJDb3JlIHRvIEFUSyBiZWZvcmUgcmV0dXJuaW5nIGl0LgogICAgICAgICh3
ZWJraXRBY2Nlc3NpYmxlVGV4dFNldFNlbGVjdGlvbik6IFVzZSBhdGtPZmZzZXRUb1dlYkNvcmVP
ZmZzZXQKICAgICAgICB0byB0cmFuc2xhdGUgYW4gb2Zmc2V0IGZyb20gV2ViQ29yZSB0byBBVEsg
YmVmb3JlIHVzaW5nIGl0LgogICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dFNldENhcmV0T2Zm
c2V0KTogTGlrZXdpc2UuCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKwogLi4uL2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50
ZXJmYWNlVGV4dC5jcHAgICAgICAgICAgfCAgIDc4ICsrKysrKysrKysrKy0tLS0tLS0tCiAyIGZp
bGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5YTRjM2RiLi43N2RiOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMt
MDYtMjggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbR1RLXSBSZWZhY3RvciBjb2RlIGZvciB0cmFuc2xhdGluZyBvZmZzZXRzIGJldHdl
ZW4gV2ViQ29yZSBhMTF5IGFuZCBBVEsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExODE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAgICAgICAo
bGlzdEl0ZW1NYXJrZXJMZW5ndGhGb3JPYmplY3QpOiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVmYWN0
b3IgY29kZQorICAgICAgICBuZWVkZWQgdG8gdHJhbnNsYXRlIG9mZnNldHMgZnJvbSBXZWJDb3Jl
IHRvIEFUSyB3b3JsZHMuIEN1cnJlbnRseQorICAgICAgICByZWxhdGVkIHRvIGNvbnNpZGVyaW5n
IGxpc3QgaXRlbSBtYXJrZXJzIGluIExUUiB0ZXh0IG9ubHkuCisgICAgICAgICh3ZWJDb3JlT2Zm
c2V0VG9BdGtPZmZzZXQpOiBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY29kZQorICAgICAgICBy
ZWFkYWJpbGl0eSBwdXJwb3Nlcy4gSXQganVzdCBjYWxscyBsaXN0SXRlbU1hcmtlckxlbmd0aEZv
ck9iamVjdC4KKyAgICAgICAgKGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCk6IExpa2V3aXNlLgor
ICAgICAgICAoZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdCk6IFVzZSB3ZWJDb3JlT2Zmc2V0
VG9BdGtPZmZzZXQuCisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldENhcmV0T2Zmc2V0
KTogVXNlIHdlYkNvcmVPZmZzZXRUb0F0a09mZnNldAorICAgICAgICB0byB0cmFuc2xhdGUgYW4g
b2Zmc2V0IGZyb20gV2ViQ29yZSB0byBBVEsgYmVmb3JlIHJldHVybmluZyBpdC4KKyAgICAgICAg
KHdlYmtpdEFjY2Vzc2libGVUZXh0U2V0U2VsZWN0aW9uKTogVXNlIGF0a09mZnNldFRvV2ViQ29y
ZU9mZnNldAorICAgICAgICB0byB0cmFuc2xhdGUgYW4gb2Zmc2V0IGZyb20gV2ViQ29yZSB0byBB
VEsgYmVmb3JlIHVzaW5nIGl0LgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRleHRTZXRDYXJl
dE9mZnNldCk6IExpa2V3aXNlLgorCiAyMDEzLTA2LTI3ICBTZW9ranUgS3dvbiAgPHNlb2tqdS5r
d29uQGdtYWlsLmNvbT4KIAogICAgICAgICBSZW1vdmluZyB0aGUgcmVkdW5kYW50IGNoZWNrcyBh
ZnRlciByMTUyMDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKaW5kZXggZTBi
YzczMi4uNzJlNWIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcApAQCAt
NDcwLDYgKzQ3MCwzOSBAQCBzdGF0aWMgSW50UmVjdCB0ZXh0RXh0ZW50cyhBdGtUZXh0KiB0ZXh0
LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50IGxlbmd0aCwgQXRrQ29vcgogICAgIHJldHVybiBleHRl
bnRzOwogfQogCitzdGF0aWMgaW50IGxpc3RJdGVtTWFya2VyTGVuZ3RoRm9yT2JqZWN0KGNvbnN0
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICBpZiAoIW9iamVjdC0+aXNBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gV2Ug
bmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyIGluCisg
ICAgLy8gTGVmdC1Uby1SaWdodCB0ZXh0LCBzaW5jZSB3ZSBleHBvc2UgaXQgdG9nZXRoZXIgd2l0
aCB0aGUgdGV4dC4KKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gb2JqZWN0LT5yZW5kZXJl
cigpOworICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpICYmIHJlbmRl
cmVyLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIpIHsKKyAgICAgICAgU3RyaW5nIG1hcmtl
clRleHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgo
KTsKKyAgICAgICAgcmV0dXJuIG1hcmtlclRleHQubGVuZ3RoKCk7CisgICAgfQorCisgICAgcmV0
dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd2ViQ29yZU9mZnNldFRvQXRrT2Zmc2V0KGNvbnN0IEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgaW50IG9mZnNldCkKK3sKKyAgICBpZiAoIW9iamVj
dC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkgfHwgIW9iamVjdC0+aXNMaXN0SXRlbSgp
KQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgcmV0dXJuIG9mZnNldCArIGxpc3RJdGVt
TWFya2VyTGVuZ3RoRm9yT2JqZWN0KG9iamVjdCk7Cit9CisKK3N0YXRpYyBpbnQgYXRrT2Zmc2V0
VG9XZWJDb3JlT2Zmc2V0KEF0a1RleHQqIHRleHQsIGludCBvZmZzZXQpCit7CisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUodGV4dCk7CisgICAgaWYgKCFjb3JlT2Jq
ZWN0IHx8ICFjb3JlT2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSB8fCAhY29y
ZU9iamVjdC0+aXNMaXN0SXRlbSgpKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgcmV0
dXJuIG9mZnNldCAtIGxpc3RJdGVtTWFya2VyTGVuZ3RoRm9yT2JqZWN0KGNvcmVPYmplY3QpOwor
fQorCiBzdGF0aWMgdm9pZCBnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KEFjY2Vzc2liaWxp
dHlPYmplY3QqIGNvcmVPYmplY3QsIFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgZ2ludCYg
c3RhcnRPZmZzZXQsIGdpbnQmIGVuZE9mZnNldCkKIHsKICAgICBpZiAoIWNvcmVPYmplY3QtPmlz
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKQpAQCAtNTExLDE1ICs1NDQsOSBAQCBzdGF0aWMg
dm9pZCBnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNv
cmVPYmplY3QsIFZpc2libAogICAgIFBvc2l0aW9uIHBhcmVudEZpcnN0UG9zaXRpb24gPSBmaXJz
dFBvc2l0aW9uSW5PckJlZm9yZU5vZGUobm9kZSk7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZUlu
UGFyZW50ID0gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBwYXJlbnRGaXJzdFBvc2l0
aW9uLCBub2RlUmFuZ2VTdGFydCk7CiAKLSAgICAvLyBTZXQgdmFsdWVzIGZvciBzdGFydCBhbmQg
ZW5kIG9mZnNldHMuCi0gICAgc3RhcnRPZmZzZXQgPSBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3Ro
KHJhbmdlSW5QYXJlbnQuZ2V0KCksIHRydWUpOwogCi0gICAgLy8gV2UgbmVlZCB0byBhZGp1c3Qg
dGhlIG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyLgotICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmluZyBtYXJrZXJUZXh0ID0gdG9S
ZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRoU3VmZml4KCk7Ci0gICAgICAg
IHN0YXJ0T2Zmc2V0ICs9IG1hcmtlclRleHQubGVuZ3RoKCk7Ci0gICAgfQorICAgIC8vIFNldCB2
YWx1ZXMgZm9yIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cy4KKyAgICBzdGFydE9mZnNldCA9IHdlYkNv
cmVPZmZzZXRUb0F0a09mZnNldChjb3JlT2JqZWN0LCBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3Ro
KHJhbmdlSW5QYXJlbnQuZ2V0KCksIHRydWUpKTsKIAogICAgIFJlZlB0cjxSYW5nZT4gbm9kZVJh
bmdlID0gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBub2RlUmFuZ2VTdGFydCwgbm9k
ZVJhbmdlRW5kKTsKICAgICBlbmRPZmZzZXQgPSBzdGFydE9mZnNldCArIFRleHRJdGVyYXRvcjo6
cmFuZ2VMZW5ndGgobm9kZVJhbmdlLmdldCgpLCB0cnVlKTsKQEAgLTY4MiwxNiArNzA5LDcgQEAg
c3RhdGljIGdpbnQgd2Via2l0QWNjZXNzaWJsZVRleHRHZXRDYXJldE9mZnNldChBdGtUZXh0KiB0
ZXh0KQogICAgIGlmICghb2JqZWN0Rm9jdXNlZEFuZENhcmV0T2Zmc2V0VW5pZ25vcmVkKGNvcmVP
YmplY3QsIG9mZnNldCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IGNvcmVPYmplY3QtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRleHQgPSB0b1Jl
bmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsKLQotICAgICAg
ICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUgb2Zmc2V0IGZvciB0aGUgbGlzdCBpdGVtIG1hcmtl
ci4KLSAgICAgICAgb2Zmc2V0ICs9IG1hcmtlclRleHQubGVuZ3RoKCk7Ci0gICAgfQotCi0gICAg
Ly8gVE9ETzogVmVyaWZ5IHRoaXMgZm9yIFJUTCB0ZXh0LgotICAgIHJldHVybiBvZmZzZXQ7Cisg
ICAgcmV0dXJuIHdlYkNvcmVPZmZzZXRUb0F0a09mZnNldChjb3JlT2JqZWN0LCBvZmZzZXQpOwog
fQogCiBzdGF0aWMgQXRrQXR0cmlidXRlU2V0KiB3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldFJ1bkF0
dHJpYnV0ZXMoQXRrVGV4dCogdGV4dCwgZ2ludCBvZmZzZXQsIGdpbnQqIHN0YXJ0T2Zmc2V0LCBn
aW50KiBlbmRPZmZzZXQpCkBAIC04MjMsMTUgKzg0MSwxMyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0QWNjZXNzaWJsZVRleHRTZXRTZWxlY3Rpb24oQXRrVGV4dCogdGV4dCwgZ2ludCBzZWxlY3Rp
b25OdQogICAgICAgICBlbmRPZmZzZXQgPSB0ZXh0Q291bnQ7CiAKICAgICAvLyBXZSBuZWVkIHRv
IGFkanVzdCB0aGUgb2Zmc2V0cyBmb3IgdGhlIGxpc3QgaXRlbSBtYXJrZXIuCi0gICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IGNvcmVPYmplY3QtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRl
cmVyICYmIHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRl
eHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsK
LSAgICAgICAgaW50IG1hcmtlckxlbmd0aCA9IG1hcmtlclRleHQubGVuZ3RoKCk7Ci0gICAgICAg
IGlmIChzdGFydE9mZnNldCA8IG1hcmtlckxlbmd0aCB8fCBlbmRPZmZzZXQgPCBtYXJrZXJMZW5n
dGgpCisgICAgaW50IG9mZnNldEFkanVzdG1lbnQgPSBsaXN0SXRlbU1hcmtlckxlbmd0aEZvck9i
amVjdChjb3JlT2JqZWN0KTsKKyAgICBpZiAob2Zmc2V0QWRqdXN0bWVudCkgeworICAgICAgICBp
ZiAoc3RhcnRPZmZzZXQgPCBvZmZzZXRBZGp1c3RtZW50IHx8IGVuZE9mZnNldCA8IG9mZnNldEFk
anVzdG1lbnQpCiAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICAgICAgc3RhcnRPZmZz
ZXQgLT0gbWFya2VyTGVuZ3RoOwotICAgICAgICBlbmRPZmZzZXQgLT0gbWFya2VyTGVuZ3RoOwor
ICAgICAgICBzdGFydE9mZnNldCA9IGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCh0ZXh0LCBzdGFy
dE9mZnNldCk7CisgICAgICAgIGVuZE9mZnNldCA9IGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCh0
ZXh0LCBlbmRPZmZzZXQpOwogICAgIH0KIAogICAgIFBsYWluVGV4dFJhbmdlIHRleHRSYW5nZShz
dGFydE9mZnNldCwgZW5kT2Zmc2V0IC0gc3RhcnRPZmZzZXQpOwpAQCAtODY2LDE1ICs4ODIsMTMg
QEAgc3RhdGljIGdib29sZWFuIHdlYmtpdEFjY2Vzc2libGVUZXh0U2V0Q2FyZXRPZmZzZXQoQXRr
VGV4dCogdGV4dCwgZ2ludCBvZmZzZXQpCiAgICAgaWYgKCFjb3JlT2JqZWN0LT5pc0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IGNvcmVPYmplY3QtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRl
cmVyICYmIHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRl
eHQgPSB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsK
LSAgICAgICAgaW50IG1hcmtlckxlbmd0aCA9IG1hcmtlclRleHQubGVuZ3RoKCk7Ci0gICAgICAg
IGlmIChvZmZzZXQgPCBtYXJrZXJMZW5ndGgpCisgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhl
IG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyLgorICAgIGludCBvZmZzZXRBZGp1c3Rt
ZW50ID0gbGlzdEl0ZW1NYXJrZXJMZW5ndGhGb3JPYmplY3QoY29yZU9iamVjdCk7CisgICAgaWYg
KG9mZnNldEFkanVzdG1lbnQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IG9mZnNldEFkanVzdG1l
bnQpCiAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICAgICAgLy8gV2UgbmVlZCB0byBh
ZGp1c3QgdGhlIG9mZnNldCBmb3IgbGlzdCBpdGVtcy4KLSAgICAgICAgb2Zmc2V0IC09IG1hcmtl
ckxlbmd0aDsKKyAgICAgICAgb2Zmc2V0ID0gYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KHRleHQs
IG9mZnNldCk7CiAgICAgfQogCiAgICAgUGxhaW5UZXh0UmFuZ2UgdGV4dFJhbmdlKG9mZnNldCwg
MCk7Ci0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205897</attachid>
            <date>2013-07-02 05:54:34 -0700</date>
            <delta_ts>2013-07-10 18:18:41 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-ATK-Refactor-code-for-translating-offsets-between-We.patch</filename>
            <type>text/plain</type>
            <size>8008</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBhYmExNzg3YzcwMjExN2RkZGJkYmFkMGU0ODJhMWRjODM4Yjk1MjEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVHVlLCAyIEp1bCAyMDEzIDEzOjQ0OjQ1ICswMTAwClN1YmplY3Q6IFtQ
QVRDSF0gW0FUS10gUmVmYWN0b3IgY29kZSBmb3IgdHJhbnNsYXRpbmcgb2Zmc2V0cyBiZXR3ZWVu
IFdlYkNvcmUKIGExMXkgYW5kIEFUSyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE4MTc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCk5vIG5ldyB0ZXN0cyAo
T09QUyEpLgoKKiBhY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4
dC5jcHA6CihsaXN0SXRlbU1hcmtlckxlbmd0aEZvck9iamVjdCk6IEhlbHBlciBmdW5jdGlvbiB0
byByZWZhY3RvciBjb2RlCm5lZWRlZCB0byB0cmFuc2xhdGUgb2Zmc2V0cyBmcm9tIFdlYkNvcmUg
dG8gQVRLIHdvcmxkcy4gQ3VycmVudGx5CnJlbGF0ZWQgdG8gY29uc2lkZXJpbmcgbGlzdCBpdGVt
IG1hcmtlcnMgaW4gTFRSIHRleHQgb25seS4KKHdlYkNvcmVPZmZzZXRUb0F0a09mZnNldCk6IENv
bnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjb2RlCnJlYWRhYmlsaXR5IHB1cnBvc2VzLiBJdCBqdXN0
IGNhbGxzIGxpc3RJdGVtTWFya2VyTGVuZ3RoRm9yT2JqZWN0LgooYXRrT2Zmc2V0VG9XZWJDb3Jl
T2Zmc2V0KTogTGlrZXdpc2UuCihnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KTogVXNlIHdl
YkNvcmVPZmZzZXRUb0F0a09mZnNldC4KKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2FyZXRPZmZz
ZXQpOiBVc2Ugd2ViQ29yZU9mZnNldFRvQXRrT2Zmc2V0CnRvIHRyYW5zbGF0ZSBhbiBvZmZzZXQg
ZnJvbSBXZWJDb3JlIHRvIEFUSyBiZWZvcmUgcmV0dXJuaW5nIGl0Lgood2Via2l0QWNjZXNzaWJs
ZVRleHRTZXRTZWxlY3Rpb24pOiBVc2UgYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0CnRvIHRyYW5z
bGF0ZSBhbiBvZmZzZXQgZnJvbSBXZWJDb3JlIHRvIEFUSyBiZWZvcmUgdXNpbmcgaXQuCih3ZWJr
aXRBY2Nlc3NpYmxlVGV4dFNldENhcmV0T2Zmc2V0KTogTGlrZXdpc2UuCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKwog
Li4uL2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgICAgICAgICAgfCAgIDcz
ICsrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyks
IDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZWQ0YmQxLi45MmRkMGRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDctMDIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxt
YXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbQVRLXSBSZWZhY3RvciBjb2RlIGZv
ciB0cmFuc2xhdGluZyBvZmZzZXRzIGJldHdlZW4gV2ViQ29yZSBhMTF5IGFuZCBBVEsKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODE3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAo
T09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUlu
dGVyZmFjZVRleHQuY3BwOgorICAgICAgICAobGlzdEl0ZW1NYXJrZXJMZW5ndGhGb3JPYmplY3Qp
OiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVmYWN0b3IgY29kZQorICAgICAgICBuZWVkZWQgdG8gdHJh
bnNsYXRlIG9mZnNldHMgZnJvbSBXZWJDb3JlIHRvIEFUSyB3b3JsZHMuIEN1cnJlbnRseQorICAg
ICAgICByZWxhdGVkIHRvIGNvbnNpZGVyaW5nIGxpc3QgaXRlbSBtYXJrZXJzIGluIExUUiB0ZXh0
IG9ubHkuCisgICAgICAgICh3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQpOiBDb252ZW5pZW5jZSBm
dW5jdGlvbiBmb3IgY29kZQorICAgICAgICByZWFkYWJpbGl0eSBwdXJwb3Nlcy4gSXQganVzdCBj
YWxscyBsaXN0SXRlbU1hcmtlckxlbmd0aEZvck9iamVjdC4KKyAgICAgICAgKGF0a09mZnNldFRv
V2ViQ29yZU9mZnNldCk6IExpa2V3aXNlLgorICAgICAgICAoZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zv
ck9iamVjdCk6IFVzZSB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQuCisgICAgICAgICh3ZWJraXRB
Y2Nlc3NpYmxlVGV4dEdldENhcmV0T2Zmc2V0KTogVXNlIHdlYkNvcmVPZmZzZXRUb0F0a09mZnNl
dAorICAgICAgICB0byB0cmFuc2xhdGUgYW4gb2Zmc2V0IGZyb20gV2ViQ29yZSB0byBBVEsgYmVm
b3JlIHJldHVybmluZyBpdC4KKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0U2V0U2VsZWN0
aW9uKTogVXNlIGF0a09mZnNldFRvV2ViQ29yZU9mZnNldAorICAgICAgICB0byB0cmFuc2xhdGUg
YW4gb2Zmc2V0IGZyb20gV2ViQ29yZSB0byBBVEsgYmVmb3JlIHVzaW5nIGl0LgorICAgICAgICAo
d2Via2l0QWNjZXNzaWJsZVRleHRTZXRDYXJldE9mZnNldCk6IExpa2V3aXNlLgorCiAyMDEzLTA3
LTAyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVuZXhwb3Nl
IEVkaXRpbmdQcm9wZXJ0aWVzVG9JbmNsdWRlIGluIEVkaXRpbmdTdHlsZS5oIGFmdGVyIHIxNTE3
NzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
YXRrL1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAppbmRleCAzZGEyYTllLi5jMTYx
OTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRB
Y2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC00NzIsNiArNDcy
LDM0IEBAIHN0YXRpYyBJbnRSZWN0IHRleHRFeHRlbnRzKEF0a1RleHQqIHRleHQsIGdpbnQgc3Rh
cnRPZmZzZXQsIGdpbnQgbGVuZ3RoLCBBdGtDb29yCiAgICAgcmV0dXJuIGV4dGVudHM7CiB9CiAK
K3N0YXRpYyBpbnQgbGlzdEl0ZW1NYXJrZXJMZW5ndGhGb3JPYmplY3QoY29uc3QgQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0KQoreworICAgIC8vIFdlIG5lZWQgdG8gYWRqdXN0IHRoZSBvZmZz
ZXRzIGZvciB0aGUgbGlzdCBpdGVtIG1hcmtlciBpbgorICAgIC8vIExlZnQtVG8tUmlnaHQgdGV4
dCwgc2luY2Ugd2UgZXhwb3NlIGl0IHRvZ2V0aGVyIHdpdGggdGhlIHRleHQuCisgICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IG9iamVjdC0+cmVuZGVyZXIoKTsKKyAgICBpZiAocmVuZGVyZXIg
JiYgcmVuZGVyZXItPmlzTGlzdEl0ZW0oKSAmJiByZW5kZXJlci0+c3R5bGUoKS0+ZGlyZWN0aW9u
KCkgPT0gTFRSKQorICAgICAgICByZXR1cm4gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1h
cmtlclRleHRXaXRoU3VmZml4KCkubGVuZ3RoKCk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3Rh
dGljIGludCB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQoY29uc3QgQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0LCBpbnQgb2Zmc2V0KQoreworICAgIGlmICghb2JqZWN0LT5pc0xpc3RJdGVtKCkp
CisgICAgICAgIHJldHVybiBvZmZzZXQ7CisKKyAgICByZXR1cm4gb2Zmc2V0ICsgbGlzdEl0ZW1N
YXJrZXJMZW5ndGhGb3JPYmplY3Qob2JqZWN0KTsKK30KKworc3RhdGljIGludCBhdGtPZmZzZXRU
b1dlYkNvcmVPZmZzZXQoQXRrVGV4dCogdGV4dCwgaW50IG9mZnNldCkKK3sKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZSh0ZXh0KTsKKyAgICBpZiAoIWNvcmVPYmpl
Y3QgfHwgIWNvcmVPYmplY3QtPmlzTGlzdEl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIG9mZnNldDsK
KworICAgIHJldHVybiBvZmZzZXQgLSBsaXN0SXRlbU1hcmtlckxlbmd0aEZvck9iamVjdChjb3Jl
T2JqZWN0KTsKK30KKwogc3RhdGljIHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdChB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24sIGdpbnQmIHN0YXJ0T2Zmc2V0LCBnaW50JiBlbmRPZmZzZXQpCiB7CiAgICAgaWYgKCFjb3Jl
T2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkKQEAgLTUxMywxNSArNTQxLDkg
QEAgc3RhdGljIHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdChBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmwKICAgICBQb3NpdGlvbiBwYXJlbnRGaXJzdFBvc2l0
aW9uID0gZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKG5vZGUpOwogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2VJblBhcmVudCA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgcGFyZW50
Rmlyc3RQb3NpdGlvbiwgbm9kZVJhbmdlU3RhcnQpOwogCi0gICAgLy8gU2V0IHZhbHVlcyBmb3Ig
c3RhcnQgYW5kIGVuZCBvZmZzZXRzLgotICAgIHN0YXJ0T2Zmc2V0ID0gVGV4dEl0ZXJhdG9yOjpy
YW5nZUxlbmd0aChyYW5nZUluUGFyZW50LmdldCgpLCB0cnVlKTsKIAotICAgIC8vIFdlIG5lZWQg
dG8gYWRqdXN0IHRoZSBvZmZzZXRzIGZvciB0aGUgbGlzdCBpdGVtIG1hcmtlci4KLSAgICBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZU9iamVjdC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVu
ZGVyZXIgJiYgcmVuZGVyZXItPmlzTGlzdEl0ZW0oKSkgewotICAgICAgICBTdHJpbmcgbWFya2Vy
VGV4dCA9IHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgp
OwotICAgICAgICBzdGFydE9mZnNldCArPSBtYXJrZXJUZXh0Lmxlbmd0aCgpOwotICAgIH0KKyAg
ICAvLyBTZXQgdmFsdWVzIGZvciBzdGFydCBhbmQgZW5kIG9mZnNldHMuCisgICAgc3RhcnRPZmZz
ZXQgPSB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQoY29yZU9iamVjdCwgVGV4dEl0ZXJhdG9yOjpy
YW5nZUxlbmd0aChyYW5nZUluUGFyZW50LmdldCgpLCB0cnVlKSk7CiAKICAgICBSZWZQdHI8UmFu
Z2U+IG5vZGVSYW5nZSA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZVJhbmdl
U3RhcnQsIG5vZGVSYW5nZUVuZCk7CiAgICAgZW5kT2Zmc2V0ID0gc3RhcnRPZmZzZXQgKyBUZXh0
SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKG5vZGVSYW5nZS5nZXQoKSwgdHJ1ZSk7CkBAIC02ODUsMTYg
KzcwNyw3IEBAIHN0YXRpYyBnaW50IHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2FyZXRPZmZzZXQo
QXRrVGV4dCogdGV4dCkKICAgICBpZiAoIW9iamVjdEZvY3VzZWRBbmRDYXJldE9mZnNldFVuaWdu
b3JlZChjb3JlT2JqZWN0LCBvZmZzZXQpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5k
ZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmluZyBtYXJrZXJU
ZXh0ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRoU3VmZml4KCk7
Ci0KLSAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldCBmb3IgdGhlIGxpc3Qg
aXRlbSBtYXJrZXIuCi0gICAgICAgIG9mZnNldCArPSBtYXJrZXJUZXh0Lmxlbmd0aCgpOwotICAg
IH0KLQotICAgIC8vIFRPRE86IFZlcmlmeSB0aGlzIGZvciBSVEwgdGV4dC4KLSAgICByZXR1cm4g
b2Zmc2V0OworICAgIHJldHVybiB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQoY29yZU9iamVjdCwg
b2Zmc2V0KTsKIH0KIAogc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZVRl
eHRHZXRSdW5BdHRyaWJ1dGVzKEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBnaW50KiBzdGFy
dE9mZnNldCwgZ2ludCogZW5kT2Zmc2V0KQpAQCAtODI2LDE1ICs4MzksMTMgQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdEFjY2Vzc2libGVUZXh0U2V0U2VsZWN0aW9uKEF0a1RleHQqIHRleHQsIGdp
bnQgc2VsZWN0aW9uTnUKICAgICAgICAgZW5kT2Zmc2V0ID0gdGV4dENvdW50OwogCiAgICAgLy8g
V2UgbmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyLgot
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAg
IGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmlu
ZyBtYXJrZXJUZXh0ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRo
U3VmZml4KCk7Ci0gICAgICAgIGludCBtYXJrZXJMZW5ndGggPSBtYXJrZXJUZXh0Lmxlbmd0aCgp
OwotICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCBtYXJrZXJMZW5ndGggfHwgZW5kT2Zmc2V0IDwg
bWFya2VyTGVuZ3RoKQorICAgIGludCBvZmZzZXRBZGp1c3RtZW50ID0gbGlzdEl0ZW1NYXJrZXJM
ZW5ndGhGb3JPYmplY3QoY29yZU9iamVjdCk7CisgICAgaWYgKG9mZnNldEFkanVzdG1lbnQpIHsK
KyAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgb2Zmc2V0QWRqdXN0bWVudCB8fCBlbmRPZmZzZXQg
PCBvZmZzZXRBZGp1c3RtZW50KQogICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgICAg
IHN0YXJ0T2Zmc2V0IC09IG1hcmtlckxlbmd0aDsKLSAgICAgICAgZW5kT2Zmc2V0IC09IG1hcmtl
ckxlbmd0aDsKKyAgICAgICAgc3RhcnRPZmZzZXQgPSBhdGtPZmZzZXRUb1dlYkNvcmVPZmZzZXQo
dGV4dCwgc3RhcnRPZmZzZXQpOworICAgICAgICBlbmRPZmZzZXQgPSBhdGtPZmZzZXRUb1dlYkNv
cmVPZmZzZXQodGV4dCwgZW5kT2Zmc2V0KTsKICAgICB9CiAKICAgICBQbGFpblRleHRSYW5nZSB0
ZXh0UmFuZ2Uoc3RhcnRPZmZzZXQsIGVuZE9mZnNldCAtIHN0YXJ0T2Zmc2V0KTsKQEAgLTg2OSwx
NSArODgwLDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRBY2Nlc3NpYmxlVGV4dFNldENhcmV0
T2Zmc2V0KEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0KQogICAgIGlmICghY29yZU9iamVjdC0+
aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBGQUxTRTsKIAot
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAg
IGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmlu
ZyBtYXJrZXJUZXh0ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRo
U3VmZml4KCk7Ci0gICAgICAgIGludCBtYXJrZXJMZW5ndGggPSBtYXJrZXJUZXh0Lmxlbmd0aCgp
OwotICAgICAgICBpZiAob2Zmc2V0IDwgbWFya2VyTGVuZ3RoKQorICAgIC8vIFdlIG5lZWQgdG8g
YWRqdXN0IHRoZSBvZmZzZXRzIGZvciB0aGUgbGlzdCBpdGVtIG1hcmtlci4KKyAgICBpbnQgb2Zm
c2V0QWRqdXN0bWVudCA9IGxpc3RJdGVtTWFya2VyTGVuZ3RoRm9yT2JqZWN0KGNvcmVPYmplY3Qp
OworICAgIGlmIChvZmZzZXRBZGp1c3RtZW50KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCBvZmZz
ZXRBZGp1c3RtZW50KQogICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgICAgIC8vIFdl
IG5lZWQgdG8gYWRqdXN0IHRoZSBvZmZzZXQgZm9yIGxpc3QgaXRlbXMuCi0gICAgICAgIG9mZnNl
dCAtPSBtYXJrZXJMZW5ndGg7CisgICAgICAgIG9mZnNldCA9IGF0a09mZnNldFRvV2ViQ29yZU9m
ZnNldCh0ZXh0LCBvZmZzZXQpOwogICAgIH0KIAogICAgIFBsYWluVGV4dFJhbmdlIHRleHRSYW5n
ZShvZmZzZXQsIDApOwotLSAKMS43LjEwLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206420</attachid>
            <date>2013-07-10 18:19:22 -0700</date>
            <delta_ts>2013-07-11 00:51:40 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>bug-118179-20130711021700.patch</filename>
            <type>text/plain</type>
            <size>6824</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM0MWY0Njk4NWRiYThi
MTEwYzY4OGI0Y2Q1NWIyOTgwN2I3NTM2ZS4uN2I2OTA2NGUyYTk0ZjMxY2E0NDllOTc0MmY4MWI5
ZTNjMDE2Y2Y2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEzLTA3LTEwICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gUmVmYWN0b3IgY29kZSBmb3IgdHJhbnNsYXRpbmcgb2Zmc2V0cyBiZXR3ZWVuIFdlYkNvcmUg
YTExeSBhbmQgQVRLCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTgxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRr
L1dlYktpdEFjY2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcDoKKyAgICAgICAgKG9mZnNldEFkanVz
dG1lbnRGb3JMaXN0SXRlbSk6IEhlbHBlciBmdW5jdGlvbiB0byByZWZhY3RvciBjb2RlCisgICAg
ICAgIG5lZWRlZCB0byB0cmFuc2xhdGUgb2Zmc2V0cyBmcm9tIFdlYkNvcmUgdG8gQVRLIHdvcmxk
cy4gQ3VycmVudGx5CisgICAgICAgIHJlbGF0ZWQgdG8gY29uc2lkZXJpbmcgbGlzdCBpdGVtIG1h
cmtlcnMgaW4gTFRSIHRleHQgb25seS4KKyAgICAgICAgKHdlYkNvcmVPZmZzZXRUb0F0a09mZnNl
dCk6IENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBjb2RlCisgICAgICAgIHJlYWRhYmlsaXR5IHB1
cnBvc2VzLiBJdCBqdXN0IGNhbGxzIG9mZnNldEFkanVzdG1lbnRGb3JMaXN0SXRlbS4KKyAgICAg
ICAgKGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCk6IExpa2V3aXNlLgorICAgICAgICAoZ2V0U2Vs
ZWN0aW9uT2Zmc2V0c0Zvck9iamVjdCk6IFVzZSB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQuCisg
ICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dEdldENhcmV0T2Zmc2V0KTogVXNlIHdlYkNvcmVP
ZmZzZXRUb0F0a09mZnNldAorICAgICAgICB0byB0cmFuc2xhdGUgYW4gb2Zmc2V0IGZyb20gV2Vi
Q29yZSB0byBBVEsgYmVmb3JlIHJldHVybmluZyBpdC4KKyAgICAgICAgKHdlYmtpdEFjY2Vzc2li
bGVUZXh0U2V0U2VsZWN0aW9uKTogVXNlIGF0a09mZnNldFRvV2ViQ29yZU9mZnNldAorICAgICAg
ICB0byB0cmFuc2xhdGUgYW4gb2Zmc2V0IGZyb20gV2ViQ29yZSB0byBBVEsgYmVmb3JlIHVzaW5n
IGl0LgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZVRleHRTZXRDYXJldE9mZnNldCk6IExpa2V3
aXNlLgorCiAyMDEzLTA2LTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGRlZCAvZCBvcHRpb24gdG8geGNvcHkgdG8gcHJldmVudCB1bm5l
Y2Vzc2FyeSBjb3B5aW5nIGFuZCBjb21waWxpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nlc3NpYmxlSW50ZXJmYWNl
VGV4dC5jcHAKaW5kZXggZTA2MzRmZTY3NTRmNTcwZmUxZmQ0Y2IwMTFhZjNkMDgzMDE4ZGFiMS4u
OGRhNjA0OTg4ODgyMGQ0ODc3NTY1MTZlNmQxODBmNzQzYWMwYzhlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vz
c2libGVJbnRlcmZhY2VUZXh0LmNwcApAQCAtNDcwLDYgKzQ3MCwzNCBAQCBzdGF0aWMgSW50UmVj
dCB0ZXh0RXh0ZW50cyhBdGtUZXh0KiB0ZXh0LCBnaW50IHN0YXJ0T2Zmc2V0LCBnaW50IGxlbmd0
aCwgQXRrQ29vcgogICAgIHJldHVybiBleHRlbnRzOwogfQogCitzdGF0aWMgaW50IG9mZnNldEFk
anVzdG1lbnRGb3JMaXN0SXRlbShjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCit7
CisgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0g
bWFya2VyIGluCisgICAgLy8gTGVmdC1Uby1SaWdodCB0ZXh0LCBzaW5jZSB3ZSBleHBvc2UgaXQg
dG9nZXRoZXIgd2l0aCB0aGUgdGV4dC4KKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gb2Jq
ZWN0LT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRl
bSgpICYmIHJlbmRlcmVyLT5zdHlsZSgpLT5kaXJlY3Rpb24oKSA9PSBMVFIpCisgICAgICAgIHJl
dHVybiB0b1JlbmRlckxpc3RJdGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKS5s
ZW5ndGgoKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdlYkNvcmVPZmZzZXRU
b0F0a09mZnNldChjb25zdCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGludCBvZmZzZXQp
Cit7CisgICAgaWYgKCFvYmplY3QtPmlzTGlzdEl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIG9mZnNl
dDsKKworICAgIHJldHVybiBvZmZzZXQgKyBvZmZzZXRBZGp1c3RtZW50Rm9yTGlzdEl0ZW0ob2Jq
ZWN0KTsKK30KKworc3RhdGljIGludCBhdGtPZmZzZXRUb1dlYkNvcmVPZmZzZXQoQXRrVGV4dCog
dGV4dCwgaW50IG9mZnNldCkKK3sKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0
ID0gY29yZSh0ZXh0KTsKKyAgICBpZiAoIWNvcmVPYmplY3QgfHwgIWNvcmVPYmplY3QtPmlzTGlz
dEl0ZW0oKSkKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKworICAgIHJldHVybiBvZmZzZXQgLSBv
ZmZzZXRBZGp1c3RtZW50Rm9yTGlzdEl0ZW0oY29yZU9iamVjdCk7Cit9CisKIHN0YXRpYyB2b2lk
IGdldFNlbGVjdGlvbk9mZnNldHNGb3JPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9i
amVjdCwgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBnaW50JiBzdGFydE9mZnNldCwgZ2lu
dCYgZW5kT2Zmc2V0KQogewogICAgIGlmICghY29yZU9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0KCkpCkBAIC01MTEsMTUgKzUzOSw5IEBAIHN0YXRpYyB2b2lkIGdldFNlbGVjdGlv
bk9mZnNldHNGb3JPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgVmlzaWJs
CiAgICAgUG9zaXRpb24gcGFyZW50Rmlyc3RQb3NpdGlvbiA9IGZpcnN0UG9zaXRpb25Jbk9yQmVm
b3JlTm9kZShub2RlKTsKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlSW5QYXJlbnQgPSBSYW5nZTo6
Y3JlYXRlKG5vZGUtPmRvY3VtZW50KCksIHBhcmVudEZpcnN0UG9zaXRpb24sIG5vZGVSYW5nZVN0
YXJ0KTsKIAotICAgIC8vIFNldCB2YWx1ZXMgZm9yIHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cy4KLSAg
ICBzdGFydE9mZnNldCA9IFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2VJblBhcmVudC5n
ZXQoKSwgdHJ1ZSk7CiAKLSAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUgb2Zmc2V0cyBmb3Ig
dGhlIGxpc3QgaXRlbSBtYXJrZXIuCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvcmVP
YmplY3QtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0xpc3RJ
dGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRleHQgPSB0b1JlbmRlckxpc3RJdGVtKHJl
bmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsKLSAgICAgICAgc3RhcnRPZmZzZXQgKz0g
bWFya2VyVGV4dC5sZW5ndGgoKTsKLSAgICB9CisgICAgLy8gU2V0IHZhbHVlcyBmb3Igc3RhcnQg
YW5kIGVuZCBvZmZzZXRzLgorICAgIHN0YXJ0T2Zmc2V0ID0gd2ViQ29yZU9mZnNldFRvQXRrT2Zm
c2V0KGNvcmVPYmplY3QsIFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgocmFuZ2VJblBhcmVudC5n
ZXQoKSwgdHJ1ZSkpOwogCiAgICAgUmVmUHRyPFJhbmdlPiBub2RlUmFuZ2UgPSBSYW5nZTo6Y3Jl
YXRlKG5vZGUtPmRvY3VtZW50KCksIG5vZGVSYW5nZVN0YXJ0LCBub2RlUmFuZ2VFbmQpOwogICAg
IGVuZE9mZnNldCA9IHN0YXJ0T2Zmc2V0ICsgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChub2Rl
UmFuZ2UuZ2V0KCksIHRydWUpOwpAQCAtNjgzLDE2ICs3MDUsNyBAQCBzdGF0aWMgZ2ludCB3ZWJr
aXRBY2Nlc3NpYmxlVGV4dEdldENhcmV0T2Zmc2V0KEF0a1RleHQqIHRleHQpCiAgICAgaWYgKCFv
YmplY3RGb2N1c2VkQW5kQ2FyZXRPZmZzZXRVbmlnbm9yZWQoY29yZU9iamVjdCwgb2Zmc2V0KSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29yZU9i
amVjdC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzTGlzdEl0
ZW0oKSkgewotICAgICAgICBTdHJpbmcgbWFya2VyVGV4dCA9IHRvUmVuZGVyTGlzdEl0ZW0ocmVu
ZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwotCi0gICAgICAgIC8vIFdlIG5lZWQgdG8g
YWRqdXN0IHRoZSBvZmZzZXQgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyLgotICAgICAgICBvZmZz
ZXQgKz0gbWFya2VyVGV4dC5sZW5ndGgoKTsKLSAgICB9Ci0KLSAgICAvLyBUT0RPOiBWZXJpZnkg
dGhpcyBmb3IgUlRMIHRleHQuCi0gICAgcmV0dXJuIG9mZnNldDsKKyAgICByZXR1cm4gd2ViQ29y
ZU9mZnNldFRvQXRrT2Zmc2V0KGNvcmVPYmplY3QsIG9mZnNldCk7CiB9CiAKIHN0YXRpYyBBdGtB
dHRyaWJ1dGVTZXQqIHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0UnVuQXR0cmlidXRlcyhBdGtUZXh0
KiB0ZXh0LCBnaW50IG9mZnNldCwgZ2ludCogc3RhcnRPZmZzZXQsIGdpbnQqIGVuZE9mZnNldCkK
QEAgLTgyNCwxNSArODM3LDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRBY2Nlc3NpYmxlVGV4
dFNldFNlbGVjdGlvbihBdGtUZXh0KiB0ZXh0LCBnaW50IHNlbGVjdGlvbk51CiAgICAgICAgIGVu
ZE9mZnNldCA9IHRleHRDb3VudDsKIAogICAgIC8vIFdlIG5lZWQgdG8gYWRqdXN0IHRoZSBvZmZz
ZXRzIGZvciB0aGUgbGlzdCBpdGVtIG1hcmtlci4KLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
ID0gY29yZU9iamVjdC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXIt
PmlzTGlzdEl0ZW0oKSkgewotICAgICAgICBTdHJpbmcgbWFya2VyVGV4dCA9IHRvUmVuZGVyTGlz
dEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwotICAgICAgICBpbnQgbWFy
a2VyTGVuZ3RoID0gbWFya2VyVGV4dC5sZW5ndGgoKTsKLSAgICAgICAgaWYgKHN0YXJ0T2Zmc2V0
IDwgbWFya2VyTGVuZ3RoIHx8IGVuZE9mZnNldCA8IG1hcmtlckxlbmd0aCkKKyAgICBpbnQgb2Zm
c2V0QWRqdXN0bWVudCA9IG9mZnNldEFkanVzdG1lbnRGb3JMaXN0SXRlbShjb3JlT2JqZWN0KTsK
KyAgICBpZiAob2Zmc2V0QWRqdXN0bWVudCkgeworICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPCBv
ZmZzZXRBZGp1c3RtZW50IHx8IGVuZE9mZnNldCA8IG9mZnNldEFkanVzdG1lbnQpCiAgICAgICAg
ICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICAgICAgc3RhcnRPZmZzZXQgLT0gbWFya2VyTGVuZ3Ro
OwotICAgICAgICBlbmRPZmZzZXQgLT0gbWFya2VyTGVuZ3RoOworICAgICAgICBzdGFydE9mZnNl
dCA9IGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCh0ZXh0LCBzdGFydE9mZnNldCk7CisgICAgICAg
IGVuZE9mZnNldCA9IGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCh0ZXh0LCBlbmRPZmZzZXQpOwog
ICAgIH0KIAogICAgIFBsYWluVGV4dFJhbmdlIHRleHRSYW5nZShzdGFydE9mZnNldCwgZW5kT2Zm
c2V0IC0gc3RhcnRPZmZzZXQpOwpAQCAtODY3LDE1ICs4NzgsMTMgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdEFjY2Vzc2libGVUZXh0U2V0Q2FyZXRPZmZzZXQoQXRrVGV4dCogdGV4dCwgZ2ludCBv
ZmZzZXQpCiAgICAgaWYgKCFjb3JlT2JqZWN0LT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qo
KSkKICAgICAgICAgcmV0dXJuIEZBTFNFOwogCi0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGNvcmVPYmplY3QtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5p
c0xpc3RJdGVtKCkpIHsKLSAgICAgICAgU3RyaW5nIG1hcmtlclRleHQgPSB0b1JlbmRlckxpc3RJ
dGVtKHJlbmRlcmVyKS0+bWFya2VyVGV4dFdpdGhTdWZmaXgoKTsKLSAgICAgICAgaW50IG1hcmtl
ckxlbmd0aCA9IG1hcmtlclRleHQubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChvZmZzZXQgPCBtYXJr
ZXJMZW5ndGgpCisgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldHMgZm9yIHRoZSBs
aXN0IGl0ZW0gbWFya2VyLgorICAgIGludCBvZmZzZXRBZGp1c3RtZW50ID0gb2Zmc2V0QWRqdXN0
bWVudEZvckxpc3RJdGVtKGNvcmVPYmplY3QpOworICAgIGlmIChvZmZzZXRBZGp1c3RtZW50KSB7
CisgICAgICAgIGlmIChvZmZzZXQgPCBvZmZzZXRBZGp1c3RtZW50KQogICAgICAgICAgICAgcmV0
dXJuIEZBTFNFOwogCi0gICAgICAgIC8vIFdlIG5lZWQgdG8gYWRqdXN0IHRoZSBvZmZzZXQgZm9y
IGxpc3QgaXRlbXMuCi0gICAgICAgIG9mZnNldCAtPSBtYXJrZXJMZW5ndGg7CisgICAgICAgIG9m
ZnNldCA9IGF0a09mZnNldFRvV2ViQ29yZU9mZnNldCh0ZXh0LCBvZmZzZXQpOwogICAgIH0KIAog
ICAgIFBsYWluVGV4dFJhbmdlIHRleHRSYW5nZShvZmZzZXQsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206431</attachid>
            <date>2013-07-11 00:52:02 -0700</date>
            <delta_ts>2013-07-11 00:55:36 -0700</delta_ts>
            <desc>Patch proposal</desc>
            <filename>bug-118179-20130711084946.patch</filename>
            <type>text/plain</type>
            <size>7297</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM0MWY0Njk4NWRiYThi
MTEwYzY4OGI0Y2Q1NWIyOTgwN2I3NTM2ZS4uNjgwNjk5YjQ5NzY1YTQxNjlmOThjMDU5M2M4ZmI4
NDhmZmY1MmZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTA3LTEwICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0FU
S10gUmVmYWN0b3IgY29kZSBmb3IgdHJhbnNsYXRpbmcgb2Zmc2V0cyBiZXR3ZWVuIFdlYkNvcmUg
YTExeSBhbmQgQVRLCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTgxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbmNhcHN1bGF0ZSBiZXR0ZXIgYW5kIG1ha2UgbW9yZSBjbGVhciB0aGUgdHJhbnNsYXRp
b24gb2Ygb2Zmc2V0cworICAgICAgICBiZXR3ZWVuIG91ciBBVEsgaW1wbGVtZW50YXRpb24gYW5k
IFdlYkNvcmUncyBhY2Nlc3NpaWxpdHkgbGF5ZXIuCisKKyAgICAgICAgVmFsdWVzIGZvciBvZmZz
ZXRzIGNhbiBkaWZmZXIgc29tZXRpbWVzIGJldHdlZW4gdGhvc2UgdHdvIHdvcmxkcworICAgICAg
ICBkdWUgdG8gc29tZSBleHRyYSBmbGF0dGVuaW5nIHdlIG5lZWQgdG8gZG8gaW4gQVRLIGJhc2Vk
IHBvcnRzIHRvCisgICAgICAgIHByb3Blcmx5IGV4cG9zZSB0aGUgYWNjZXNzaWJpbGl0eSBoaWVy
YXJjaHkgdG8gQVRzLCB3aGljaAorICAgICAgICBzb21ldGltZXMgbWVhbnMgYWRkaW5nIGV4dHJh
IHRleHQgZWxlbWVudHMgaW4gdGhlIGV4cG9zZWQgdGV4dAorICAgICAgICB0aHJvdWdoIHRoZSBB
dGtUZXh0IGludGVyZmFjZSAoZS5nLiBsaXN0IGl0ZW1zIG1hcmtlcnMpLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwOgorICAg
ICAgICAob2Zmc2V0QWRqdXN0bWVudEZvckxpc3RJdGVtKTogSGVscGVyIGZ1bmN0aW9uIHRvIHJl
ZmFjdG9yIGNvZGUKKyAgICAgICAgbmVlZGVkIHRvIHRyYW5zbGF0ZSBvZmZzZXRzIGZyb20gV2Vi
Q29yZSB0byBBVEsgd29ybGRzLiBDdXJyZW50bHkKKyAgICAgICAgcmVsYXRlZCB0byBjb25zaWRl
cmluZyBsaXN0IGl0ZW0gbWFya2VycyBpbiBMVFIgdGV4dCBvbmx5LgorICAgICAgICAod2ViQ29y
ZU9mZnNldFRvQXRrT2Zmc2V0KTogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNvZGUKKyAgICAg
ICAgcmVhZGFiaWxpdHkgcHVycG9zZXMuIEl0IGp1c3QgY2FsbHMgb2Zmc2V0QWRqdXN0bWVudEZv
ckxpc3RJdGVtLgorICAgICAgICAoYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KTogTGlrZXdpc2Uu
CisgICAgICAgIChnZXRTZWxlY3Rpb25PZmZzZXRzRm9yT2JqZWN0KTogVXNlIHdlYkNvcmVPZmZz
ZXRUb0F0a09mZnNldC4KKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2FyZXRPZmZz
ZXQpOiBVc2Ugd2ViQ29yZU9mZnNldFRvQXRrT2Zmc2V0CisgICAgICAgIHRvIHRyYW5zbGF0ZSBh
biBvZmZzZXQgZnJvbSBXZWJDb3JlIHRvIEFUSyBiZWZvcmUgcmV0dXJuaW5nIGl0LgorICAgICAg
ICAod2Via2l0QWNjZXNzaWJsZVRleHRTZXRTZWxlY3Rpb24pOiBVc2UgYXRrT2Zmc2V0VG9XZWJD
b3JlT2Zmc2V0CisgICAgICAgIHRvIHRyYW5zbGF0ZSBhbiBvZmZzZXQgZnJvbSBXZWJDb3JlIHRv
IEFUSyBiZWZvcmUgdXNpbmcgaXQuCisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlVGV4dFNldENh
cmV0T2Zmc2V0KTogTGlrZXdpc2UuCisKIDIwMTMtMDYtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIC9kIG9wdGlvbiB0byB4Y29w
eSB0byBwcmV2ZW50IHVubmVjZXNzYXJ5IGNvcHlpbmcgYW5kIGNvbXBpbGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFjY2Vzc2libGVJbnRl
cmZhY2VUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRrL1dlYktpdEFj
Y2Vzc2libGVJbnRlcmZhY2VUZXh0LmNwcAppbmRleCBlMDYzNGZlNjc1NGY1NzBmZTFmZDRjYjAx
MWFmM2QwODMwMThkYWIxLi44ZGE2MDQ5ODg4ODIwZDQ4Nzc1NjUxNmU2ZDE4MGY3NDNhYzBjOGU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0ay9XZWJLaXRBY2Nl
c3NpYmxlSW50ZXJmYWNlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdGsvV2ViS2l0QWNjZXNzaWJsZUludGVyZmFjZVRleHQuY3BwCkBAIC00NzAsNiArNDcwLDM0
IEBAIHN0YXRpYyBJbnRSZWN0IHRleHRFeHRlbnRzKEF0a1RleHQqIHRleHQsIGdpbnQgc3RhcnRP
ZmZzZXQsIGdpbnQgbGVuZ3RoLCBBdGtDb29yCiAgICAgcmV0dXJuIGV4dGVudHM7CiB9CiAKK3N0
YXRpYyBpbnQgb2Zmc2V0QWRqdXN0bWVudEZvckxpc3RJdGVtKGNvbnN0IEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUgb2Zmc2V0cyBm
b3IgdGhlIGxpc3QgaXRlbSBtYXJrZXIgaW4KKyAgICAvLyBMZWZ0LVRvLVJpZ2h0IHRleHQsIHNp
bmNlIHdlIGV4cG9zZSBpdCB0b2dldGhlciB3aXRoIHRoZSB0ZXh0LgorICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBvYmplY3QtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5pc0xpc3RJdGVtKCkgJiYgcmVuZGVyZXItPnN0eWxlKCktPmRpcmVjdGlvbigpID09
IExUUikKKyAgICAgICAgcmV0dXJuIHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJU
ZXh0V2l0aFN1ZmZpeCgpLmxlbmd0aCgpOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp
bnQgd2ViQ29yZU9mZnNldFRvQXRrT2Zmc2V0KGNvbnN0IEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCwgaW50IG9mZnNldCkKK3sKKyAgICBpZiAoIW9iamVjdC0+aXNMaXN0SXRlbSgpKQorICAg
ICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgcmV0dXJuIG9mZnNldCArIG9mZnNldEFkanVzdG1l
bnRGb3JMaXN0SXRlbShvYmplY3QpOworfQorCitzdGF0aWMgaW50IGF0a09mZnNldFRvV2ViQ29y
ZU9mZnNldChBdGtUZXh0KiB0ZXh0LCBpbnQgb2Zmc2V0KQoreworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKHRleHQpOworICAgIGlmICghY29yZU9iamVjdCB8fCAh
Y29yZU9iamVjdC0+aXNMaXN0SXRlbSgpKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAg
cmV0dXJuIG9mZnNldCAtIG9mZnNldEFkanVzdG1lbnRGb3JMaXN0SXRlbShjb3JlT2JqZWN0KTsK
K30KKwogc3RhdGljIHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGdpbnQm
IHN0YXJ0T2Zmc2V0LCBnaW50JiBlbmRPZmZzZXQpCiB7CiAgICAgaWYgKCFjb3JlT2JqZWN0LT5p
c0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkKQEAgLTUxMSwxNSArNTM5LDkgQEAgc3RhdGlj
IHZvaWQgZ2V0U2VsZWN0aW9uT2Zmc2V0c0Zvck9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBj
b3JlT2JqZWN0LCBWaXNpYmwKICAgICBQb3NpdGlvbiBwYXJlbnRGaXJzdFBvc2l0aW9uID0gZmly
c3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKG5vZGUpOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VJ
blBhcmVudCA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgcGFyZW50Rmlyc3RQb3Np
dGlvbiwgbm9kZVJhbmdlU3RhcnQpOwogCi0gICAgLy8gU2V0IHZhbHVlcyBmb3Igc3RhcnQgYW5k
IGVuZCBvZmZzZXRzLgotICAgIHN0YXJ0T2Zmc2V0ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0
aChyYW5nZUluUGFyZW50LmdldCgpLCB0cnVlKTsKIAotICAgIC8vIFdlIG5lZWQgdG8gYWRqdXN0
IHRoZSBvZmZzZXRzIGZvciB0aGUgbGlzdCBpdGVtIG1hcmtlci4KLSAgICBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gY29yZU9iamVjdC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVuZGVyZXIgJiYg
cmVuZGVyZXItPmlzTGlzdEl0ZW0oKSkgewotICAgICAgICBTdHJpbmcgbWFya2VyVGV4dCA9IHRv
UmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwotICAgICAg
ICBzdGFydE9mZnNldCArPSBtYXJrZXJUZXh0Lmxlbmd0aCgpOwotICAgIH0KKyAgICAvLyBTZXQg
dmFsdWVzIGZvciBzdGFydCBhbmQgZW5kIG9mZnNldHMuCisgICAgc3RhcnRPZmZzZXQgPSB3ZWJD
b3JlT2Zmc2V0VG9BdGtPZmZzZXQoY29yZU9iamVjdCwgVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0
aChyYW5nZUluUGFyZW50LmdldCgpLCB0cnVlKSk7CiAKICAgICBSZWZQdHI8UmFuZ2U+IG5vZGVS
YW5nZSA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZVJhbmdlU3RhcnQsIG5v
ZGVSYW5nZUVuZCk7CiAgICAgZW5kT2Zmc2V0ID0gc3RhcnRPZmZzZXQgKyBUZXh0SXRlcmF0b3I6
OnJhbmdlTGVuZ3RoKG5vZGVSYW5nZS5nZXQoKSwgdHJ1ZSk7CkBAIC02ODMsMTYgKzcwNSw3IEBA
IHN0YXRpYyBnaW50IHdlYmtpdEFjY2Vzc2libGVUZXh0R2V0Q2FyZXRPZmZzZXQoQXRrVGV4dCog
dGV4dCkKICAgICBpZiAoIW9iamVjdEZvY3VzZWRBbmRDYXJldE9mZnNldFVuaWdub3JlZChjb3Jl
T2JqZWN0LCBvZmZzZXQpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlbmRlck9iamVjdCog
cmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmluZyBtYXJrZXJUZXh0ID0gdG9S
ZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRoU3VmZml4KCk7Ci0KLSAgICAg
ICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgdGhlIG9mZnNldCBmb3IgdGhlIGxpc3QgaXRlbSBtYXJr
ZXIuCi0gICAgICAgIG9mZnNldCArPSBtYXJrZXJUZXh0Lmxlbmd0aCgpOwotICAgIH0KLQotICAg
IC8vIFRPRE86IFZlcmlmeSB0aGlzIGZvciBSVEwgdGV4dC4KLSAgICByZXR1cm4gb2Zmc2V0Owor
ICAgIHJldHVybiB3ZWJDb3JlT2Zmc2V0VG9BdGtPZmZzZXQoY29yZU9iamVjdCwgb2Zmc2V0KTsK
IH0KIAogc3RhdGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZVRleHRHZXRSdW5B
dHRyaWJ1dGVzKEF0a1RleHQqIHRleHQsIGdpbnQgb2Zmc2V0LCBnaW50KiBzdGFydE9mZnNldCwg
Z2ludCogZW5kT2Zmc2V0KQpAQCAtODI0LDE1ICs4MzcsMTMgQEAgc3RhdGljIGdib29sZWFuIHdl
YmtpdEFjY2Vzc2libGVUZXh0U2V0U2VsZWN0aW9uKEF0a1RleHQqIHRleHQsIGdpbnQgc2VsZWN0
aW9uTnUKICAgICAgICAgZW5kT2Zmc2V0ID0gdGV4dENvdW50OwogCiAgICAgLy8gV2UgbmVlZCB0
byBhZGp1c3QgdGhlIG9mZnNldHMgZm9yIHRoZSBsaXN0IGl0ZW0gbWFya2VyLgotICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBjb3JlT2JqZWN0LT5yZW5kZXJlcigpOwotICAgIGlmIChyZW5k
ZXJlciAmJiByZW5kZXJlci0+aXNMaXN0SXRlbSgpKSB7Ci0gICAgICAgIFN0cmluZyBtYXJrZXJU
ZXh0ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlciktPm1hcmtlclRleHRXaXRoU3VmZml4KCk7
Ci0gICAgICAgIGludCBtYXJrZXJMZW5ndGggPSBtYXJrZXJUZXh0Lmxlbmd0aCgpOwotICAgICAg
ICBpZiAoc3RhcnRPZmZzZXQgPCBtYXJrZXJMZW5ndGggfHwgZW5kT2Zmc2V0IDwgbWFya2VyTGVu
Z3RoKQorICAgIGludCBvZmZzZXRBZGp1c3RtZW50ID0gb2Zmc2V0QWRqdXN0bWVudEZvckxpc3RJ
dGVtKGNvcmVPYmplY3QpOworICAgIGlmIChvZmZzZXRBZGp1c3RtZW50KSB7CisgICAgICAgIGlm
IChzdGFydE9mZnNldCA8IG9mZnNldEFkanVzdG1lbnQgfHwgZW5kT2Zmc2V0IDwgb2Zmc2V0QWRq
dXN0bWVudCkKICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKIAotICAgICAgICBzdGFydE9mZnNl
dCAtPSBtYXJrZXJMZW5ndGg7Ci0gICAgICAgIGVuZE9mZnNldCAtPSBtYXJrZXJMZW5ndGg7Cisg
ICAgICAgIHN0YXJ0T2Zmc2V0ID0gYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KHRleHQsIHN0YXJ0
T2Zmc2V0KTsKKyAgICAgICAgZW5kT2Zmc2V0ID0gYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KHRl
eHQsIGVuZE9mZnNldCk7CiAgICAgfQogCiAgICAgUGxhaW5UZXh0UmFuZ2UgdGV4dFJhbmdlKHN0
YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCk7CkBAIC04NjcsMTUgKzg3OCwxMyBA
QCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0QWNjZXNzaWJsZVRleHRTZXRDYXJldE9mZnNldChBdGtU
ZXh0KiB0ZXh0LCBnaW50IG9mZnNldCkKICAgICBpZiAoIWNvcmVPYmplY3QtPmlzQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdCgpKQogICAgICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gY29yZU9iamVjdC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVuZGVy
ZXIgJiYgcmVuZGVyZXItPmlzTGlzdEl0ZW0oKSkgewotICAgICAgICBTdHJpbmcgbWFya2VyVGV4
dCA9IHRvUmVuZGVyTGlzdEl0ZW0ocmVuZGVyZXIpLT5tYXJrZXJUZXh0V2l0aFN1ZmZpeCgpOwot
ICAgICAgICBpbnQgbWFya2VyTGVuZ3RoID0gbWFya2VyVGV4dC5sZW5ndGgoKTsKLSAgICAgICAg
aWYgKG9mZnNldCA8IG1hcmtlckxlbmd0aCkKKyAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCB0aGUg
b2Zmc2V0cyBmb3IgdGhlIGxpc3QgaXRlbSBtYXJrZXIuCisgICAgaW50IG9mZnNldEFkanVzdG1l
bnQgPSBvZmZzZXRBZGp1c3RtZW50Rm9yTGlzdEl0ZW0oY29yZU9iamVjdCk7CisgICAgaWYgKG9m
ZnNldEFkanVzdG1lbnQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IG9mZnNldEFkanVzdG1lbnQp
CiAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAKLSAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1
c3QgdGhlIG9mZnNldCBmb3IgbGlzdCBpdGVtcy4KLSAgICAgICAgb2Zmc2V0IC09IG1hcmtlckxl
bmd0aDsKKyAgICAgICAgb2Zmc2V0ID0gYXRrT2Zmc2V0VG9XZWJDb3JlT2Zmc2V0KHRleHQsIG9m
ZnNldCk7CiAgICAgfQogCiAgICAgUGxhaW5UZXh0UmFuZ2UgdGV4dFJhbmdlKG9mZnNldCwgMCk7
Cg==
</data>
<flag name="review"
          id="228109"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>