<?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>51825</bug_id>
          
          <creation_ts>2011-01-03 09:57:03 -0800</creation_ts>
          <short_desc>[Qt] [WK2] create an initial implementation of the context menu handling for WebKit 2</short_desc>
          <delta_ts>2011-01-04 15:19:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>51902</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>328602</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-03 09:57:03 -0800</bug_when>
    <thetext>Qt does not handle the context menu on WebKit 2 at the moment, fix that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328604</commentid>
    <comment_count>1</comment_count>
      <attachid>77814</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-03 10:07:06 -0800</bug_when>
    <thetext>Created attachment 77814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328669</commentid>
    <comment_count>2</comment_count>
      <attachid>77814</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-01-03 11:26:11 -0800</bug_when>
    <thetext>Comment on attachment 77814
Patch

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

&gt; WebCore/platform/qt/ContextMenuQt.cpp:76
&gt; +Vector&lt;ContextMenuItem&gt; contextMenuItemVector(PlatformMenuDescription platformDescription)

I would just write &quot;description&quot;,  but as this is already paltform code, I would replace PlatformMenuDescription with what it is defined to, ie QList&lt;ContextMenuItem&gt;.

&gt; WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:330
&gt; +    // Remove the active menu in case this function is called twice.

I think it is called &quot;in the case&quot;. You can replace twice with repeatedly.

&gt; WebKit2/UIProcess/API/qt/qgraphicswkview.cpp:341
&gt; +    // FIXME: try to determine the view from the position of the incoming events?
&gt; +    QWidget* view = 0;
&gt; +    if (QGraphicsScene* myScene = scene()) {
&gt; +        const QList&lt;QGraphicsView*&gt; views = myScene-&gt;views();
&gt; +        view = views.value(0, 0);
&gt; +    }

Did you see how I did this with the vkb? I think that I tried handling this.

&gt; WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp:49
&gt; +    default: break;

I think break should go to the next line

&gt; WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp:109
&gt; +
&gt; +    // don&apos;t show sub-menus with just disabled actions

With capital and ending with a dot

&gt; WebKit2/UIProcess/qt/WebContextMenuProxyQt.cpp:114
&gt; +    bool anyEnabledAction = false;

anyActionEnabled, anyActionWasEnabled? depending on what it really represents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328943</commentid>
    <comment_count>3</comment_count>
      <attachid>77876</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-04 03:22:10 -0800</bug_when>
    <thetext>Created attachment 77876
Kenneth, is that what you had in mind to find the correct view?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328944</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-04 03:24:46 -0800</bug_when>
    <thetext>(And thanks for reviewing the patch by the way)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328949</commentid>
    <comment_count>5</comment_count>
      <attachid>77876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 03:53:43 -0800</bug_when>
    <thetext>Comment on attachment 77876
Kenneth, is that what you had in mind to find the correct view?

Clearing flags on attachment: 77876

Committed r74964: &lt;http://trac.webkit.org/changeset/74964&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328950</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 03:53:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77814</attachid>
            <date>2011-01-03 10:07:06 -0800</date>
            <delta_ts>2011-01-04 03:22:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51825-20110103191225.patch</filename>
            <type>text/plain</type>
            <size>12142</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWUxZWQ1OGZkMmM2ZGZlYTg2YzY2NGZkYjI1NWIzMTkyMWJlNjU5NC4uNDdiNzc2NTZmYmMyM2Q4
Yjc3ZGFkMzc1YmY1YTA0M2FmMWMxMWExYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMS0wMyAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gW1dLMl0gY3JlYXRlIGFu
IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbnRleHQgbWVudSBoYW5kbGluZyBmb3Ig
V2ViS2l0IDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUxODI1CisKKyAgICAgICAgSW1wbGVtZW50IGNvbnRleHRNZW51SXRlbVZlY3RvcigpIGZvciBR
dCwgdGhpcyBtZXRob2QgaXMgdXNlZCBpbiBXZWJLaXQgMiB0byBnZXQgdGhlCisgICAgICAgIHBs
YXRmb3JtIGluZGVwZW5kZW50IG1lbnUgaW5mb3JtYXRpb25zLgorCisgICAgICAgICogcGxhdGZv
cm0vcXQvQ29udGV4dE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1WZWN0b3IpOgorCiAyMDExLTAxLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ29udGV4dE1lbnVRdC5jcHAKaW5kZXggYzg3NzY0MjU2MjAxMzcwMmU3NzZiZjhhMDdiZjdj
Zjc1YWZlNTlkMi4uMGE3NDMzYjY1OTUyYjgzOGEwM2M0ZmIzM2FjMWM3NTMwNGJlZDZiOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3F0L0NvbnRleHRNZW51UXQuY3BwCkBAIC03MywxMCArNzMsMTQgQEAgUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0
aW9uKCkKICAgICByZXR1cm4gUGxhdGZvcm1NZW51RGVzY3JpcHRpb24oKTsKIH0KIAotVmVjdG9y
PENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKQorVmVjdG9yPENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIHBsYXRmb3JtRGVzY3JpcHRpb24pCiB7Ci0gICAgLy8gRklY
TUUgLSBJbXBsZW1lbnQgICAgCi0gICAgcmV0dXJuIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+KCk7
CisgICAgY29uc3QgUUxpc3Q8Q29udGV4dE1lbnVJdGVtPiogaXRlbXMgPSBwbGF0Zm9ybURlc2Ny
aXB0aW9uOworICAgIGludCBpdGVtQ291bnQgPSBpdGVtcy0+c2l6ZSgpOworICAgIFZlY3RvcjxD
b250ZXh0TWVudUl0ZW0+IG1lbnVJdGVtVmVjdG9yKGl0ZW1Db3VudCk7CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBpdGVtQ291bnQ7ICsraSkKKyAgICAgICAgbWVudUl0ZW1WZWN0b3IuYXBwZW5k
KGl0ZW1zLT5hdChpKSk7CisgICAgcmV0dXJuIG1lbnVJdGVtVmVjdG9yOwogfQogCiBQbGF0Zm9y
bU1lbnVEZXNjcmlwdGlvbiBwbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbihWZWN0b3I8Q29udGV4dE1l
bnVJdGVtPiYgbWVudUl0ZW1WZWN0b3IpCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGViZjc3ZmRlMDA5M2NlNzFhNjc0ZGE4Y2U3NmI5MTBh
Y2ZlY2Y2MmEuLjg2MzJiMzhlMDM4N2IzN2Y0MWMzZGEyMDllOGZlNDEwMWNiNmRmZGIgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMTEtMDEtMDMgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWlu
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbUXRdIFtXSzJdIGNyZWF0ZSBhbiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBj
b250ZXh0IG1lbnUgaGFuZGxpbmcgZm9yIFdlYktpdCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTgyNQorCisgICAgICAgIEltcGxlbWVudCB0aGUg
bmVjZXNzYXJ5IG1ldGhvZHMgdG8gZ2V0IGEgYmFzaWMgY29udGV4dCBtZW51IHdvcmtpbmcgZm9y
IFF0LgorCisgICAgICAgIE9ubHkgNCBiYXNpYyBXZWJBY3Rpb24gaGF2ZSBiZWVuIGFkZGVkIG9u
IHRoZSBVSVByb2Nlc3Mgc2lkZTogYmFjaywgZm9yd2FyZCwgc3RvcCBhbmQgcmVsb2FkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwOgorICAgICAgICAo
UUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAoUUdyYXBoaWNzV0tW
aWV3OjpzaG93Q29udGV4dE1lbnUpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6
UUdyYXBoaWNzV0tWaWV3UHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3Jh
cGhpY3N3a3ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgor
ICAgICAgICAoUVdLUGFnZVByaXZhdGU6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9X
ZWJDb250ZXh0TWVudVByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3ZWJBY3Rpb25Gb3JD
b250ZXh0TWVudUFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlR
dDo6V2ViQ29udGV4dE1lbnVQcm94eVF0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1l
bnVQcm94eVF0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5
UXQ6OnNob3dDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJv
eHlRdDo6aGlkZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQ
cm94eVF0OjpjcmVhdGVDb250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNv
bnRleHRNZW51UHJveHlRdC5oOgorCiAyMDExLTAxLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBh
cHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcAppbmRleCBlOThkOGRi
ZmMwMjAzMGUzN2ViN2QxNzExYzkyOTM1YzdkMTU4MTU0Li43OTUzMDJlZTE3OTIyYTMxYmZiM2Ez
ODVmN2FjNDE3NGY4MThkYzY2IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cWdyYXBoaWNzd2t2aWV3LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBo
aWNzd2t2aWV3LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFFDdXJzb3I+CiAjaW5j
bHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50PgogI2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+
CisjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVNjcm9s
bEJhcj4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25HcmFwaGljc0l0ZW0+CkBAIC01Miw2ICs1Myw3
IEBAIHN0cnVjdCBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlIHsKIAogICAgIFFHcmFwaGljc1dLVmll
dyogcTsKICAgICBRV0tQYWdlKiBwYWdlOworICAgIFFNZW51KiBhY3RpdmVNZW51OwogICAgIFJ1
bkxvb3A6OlRpbWVyPFFHcmFwaGljc1dLVmlld1ByaXZhdGU+IG1fc2NhbGVDb21taXRUaW1lcjsK
ICAgICBib29sIG1faXNDaGFuZ2luZ1NjYWxlOwogfTsKQEAgLTg5LDYgKzkxLDcgQEAgUUdyYXBo
aWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoUVdLQ29udGV4dCogY29udGV4dCwgQmFja2luZ1N0
b3JlVHlwZSBiYWNraW5nU3QKICAgICBjb25uZWN0KGQtPnBhZ2UsIFNJR05BTCh1cmxDaGFuZ2Vk
KGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJR05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSkpOwog
ICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGN1cnNvckNoYW5nZWQoY29uc3QgUUN1cnNvciYp
KSwgdGhpcywgU0xPVCh1cGRhdGVDdXJzb3IoY29uc3QgUUN1cnNvciYpKSk7CiAgICAgY29ubmVj
dChkLT5wYWdlLCBTSUdOQUwoZm9jdXNOZXh0UHJldkNoaWxkKGJvb2wpKSwgdGhpcywgU0xPVChm
b2N1c05leHRQcmV2Q2hpbGRDYWxsYmFjayhib29sKSkpOworICAgIGNvbm5lY3QoZC0+cGFnZSwg
U0lHTkFMKHNob3dDb250ZXh0TWVudShRTWVudSopKSwgdGhpcywgU0xPVChzaG93Q29udGV4dE1l
bnUoUU1lbnUqKSkpOwogfQogCiBRR3JhcGhpY3NXS1ZpZXc6On5RR3JhcGhpY3NXS1ZpZXcoKQpA
QCAtMzIyLDYgKzMyNSwyNyBAQCB2b2lkIFFHcmFwaGljc1dLVmlldzo6Zm9jdXNPdXRFdmVudChR
Rm9jdXNFdmVudCopCiAgICAgcGFnZSgpLT5kLT5wYWdlLT5zZXRBY3RpdmUoZmFsc2UpOwogfQog
Cit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2hvd0NvbnRleHRNZW51KFFNZW51KiBtZW51KQorewor
ICAgIC8vIFJlbW92ZSB0aGUgYWN0aXZlIG1lbnUgaW4gY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCB0d2ljZS4KKyAgICBpZiAoZC0+YWN0aXZlTWVudSkKKyAgICAgICAgZC0+YWN0aXZlTWVu
dS0+aGlkZSgpOworCisgICAgZC0+YWN0aXZlTWVudSA9IG1lbnU7CisKKyAgICAvLyBGSVhNRTog
dHJ5IHRvIGRldGVybWluZSB0aGUgdmlldyBmcm9tIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW5jb21p
bmcgZXZlbnRzPworICAgIFFXaWRnZXQqIHZpZXcgPSAwOworICAgIGlmIChRR3JhcGhpY3NTY2Vu
ZSogbXlTY2VuZSA9IHNjZW5lKCkpIHsKKyAgICAgICAgY29uc3QgUUxpc3Q8UUdyYXBoaWNzVmll
dyo+IHZpZXdzID0gbXlTY2VuZS0+dmlld3MoKTsKKyAgICAgICAgdmlldyA9IHZpZXdzLnZhbHVl
KDAsIDApOworICAgIH0KKyAgICBpZiAodmlldykKKyAgICAgICAgbWVudS0+c2V0UGFyZW50KHZp
ZXcsIG1lbnUtPndpbmRvd0ZsYWdzKCkpOworICAgIG1lbnUtPmV4ZWModmlldy0+bWFwVG9HbG9i
YWwobWVudS0+cG9zKCkpKTsKKyAgICBpZiAoZC0+YWN0aXZlTWVudSA9PSBtZW51KQorICAgICAg
ICBkLT5hY3RpdmVNZW51ID0gMDsKK30KKwogdm9pZCBRR3JhcGhpY3NXS1ZpZXc6OnRha2VTbmFw
c2hvdChjb25zdCBRU2l6ZSYgc2l6ZSwgY29uc3QgUVJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKICNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKQEAgLTMzNSw2ICszNTksNyBAQCB2b2lkIFFH
cmFwaGljc1dLVmlldzo6dGFrZVNuYXBzaG90KGNvbnN0IFFTaXplJiBzaXplLCBjb25zdCBRUmVj
dCYgY29udGVudHNSZWN0KQogCiBRR3JhcGhpY3NXS1ZpZXdQcml2YXRlOjpRR3JhcGhpY3NXS1Zp
ZXdQcml2YXRlKFFHcmFwaGljc1dLVmlldyogdmlldykKICAgICA6IHEodmlldykKKyAgICAsIGFj
dGl2ZU1lbnUoMCkKICAgICAsIG1fc2NhbGVDb21taXRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZRR3JhcGhpY3NXS1ZpZXdQcml2YXRlOjpjb21taXRTY2FsZSkKICAgICAsIG1faXND
aGFuZ2luZ1NjYWxlKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FncmFwaGljc3drdmlldy5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGlj
c3drdmlldy5oCmluZGV4IDZmNDA4MWVmYzZmNDFhZjU5NjM5Y2Y5ZjY4ZWExZjExNDg5NTRlYWUu
LmNhZjhlMGRlZjMyMzc4NzllZjEyN2Y1NzM2NzYzMDVkYTA5MDM3NGYgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmgKQEAgLTg4LDYgKzg4LDkgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBmb2N1c0luRXZlbnQoUUZvY3VzRXZlbnQqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXNPdXRFdmVudChRRm9jdXNFdmVudCopOwogCitwcml2YXRlIFFfU0xP
VFM6CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoUU1lbnUqKTsKKwogcHJpdmF0ZToKICAgICBR
X1BSSVZBVEVfU0xPVChkLCB2b2lkIG9uU2NhbGVDaGFuZ2VkKCkpOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZS5jcHAKaW5kZXggNGI1MjZhMGE4ODViMmRjMzZlMGU4OTYzNmE4Yzc2NGM4
NGQ1YzhlNS4uZWE3YjNhYjFmZGJlMTk3NDA3OWI4MGNjNjFiMWUzYTA3OTA3NzFhMyAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCisrKyBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIFBhc3NSZWZQ
dHI8V2ViUG9wdXBNZW51UHJveHk+IFFXS1BhZ2VQcml2YXRlOjpjcmVhdGVQb3B1cE1lbnVQcm94
eShXZWJQYWdlUHJveHkqCiAKIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gUVdLUGFn
ZVByaXZhdGU6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5KikKIHsKLSAgICBy
ZXR1cm4gV2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGUoKTsKKyAgICByZXR1cm4gV2ViQ29u
dGV4dE1lbnVQcm94eVF0OjpjcmVhdGUocSk7CiB9CiAKIHZvaWQgUVdLUGFnZVByaXZhdGU6OnNl
dEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0KQpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaCBiL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKaW5kZXggNjQ1Yzg0NWI5ODZkMzcwZTc0YjRlNWYx
MTQ3MGQzMWZjMzRhYWRmYy4uMmMwMWY4ZGEzZmM1ZjlhNDVkMmRlMTk2ZjEyODllOGU1ZTg1Nzc2
NyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAorKysgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCkBAIC0xMjEsNiArMTIxLDcgQEAgcHVi
bGljOgogICAgIFFfU0lHTkFMIHZvaWQgd2luZG93Q2xvc2VSZXF1ZXN0ZWQoKTsKICAgICBRX1NJ
R05BTCB2b2lkIHpvb21hYmxlQXJlYUZvdW5kKGNvbnN0IFFSZWN0Jik7CiAgICAgUV9TSUdOQUwg
dm9pZCBmb2N1c05leHRQcmV2Q2hpbGQoYm9vbCk7CisgICAgUV9TSUdOQUwgdm9pZCBzaG93Q29u
dGV4dE1lbnUoUU1lbnUqKTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgdGltZXJFdmVudChRVGlt
ZXJFdmVudCopOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1l
bnVQcm94eVF0LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlR
dC5jcHAKaW5kZXggM2YyZTQ3ZTU1ZjlmZGZjOWE0ODE3OWY4YTQyZmYwZjEwZmU3ZTFmNi4uZTBl
Y2UzMTlkYTgzMTVhNDI2OGI5ZjI1M2JmN2U5MWJhYzNlMzllZSAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmNwcAorKysgYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuY3BwCkBAIC0yNiwyOSArMjYsMTAzIEBA
CiAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5UXQuaCIKIAotI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSA8SW50UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmg+CisjaW5jbHVkZSA8cW1lbnUuaD4KKyNpbmNsdWRlIDxxd2twYWdlLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotaW5s
aW5lIFdlYkNvbnRleHRNZW51UHJveHlRdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0KCkKK3N0YXRp
YyBRV0tQYWdlOjpXZWJBY3Rpb24gd2ViQWN0aW9uRm9yQ29udGV4dE1lbnVBY3Rpb24oV2ViQ29y
ZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogeworICAgIHN3aXRjaCAoYWN0aW9uKSB7Cisg
ICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2s6CisgICAgICAgIHJldHVy
biBRV0tQYWdlOjpCYWNrOworICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnR29G
b3J3YXJkOgorICAgICAgICByZXR1cm4gUVdLUGFnZTo6Rm9yd2FyZDsKKyAgICBjYXNlIFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbVRhZ1N0b3A6CisgICAgICAgIHJldHVybiBRV0tQYWdlOjpTdG9w
OworICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnUmVsb2FkOgorICAgICAgICBy
ZXR1cm4gUVdLUGFnZTo6UmVsb2FkOworICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIH0KKyAgICBy
ZXR1cm4gUVdLUGFnZTo6Tm9XZWJBY3Rpb247CiB9CiAKLVBhc3NSZWZQdHI8V2ViQ29udGV4dE1l
bnVQcm94eVF0PiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZSgpCitXZWJDb250ZXh0TWVu
dVByb3h5UXQ6OldlYkNvbnRleHRNZW51UHJveHlRdChRV0tQYWdlKiBwYWdlKQorICAgIDogbV9w
YWdlKHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudVByb3h5
UXQpOwogfQogCi12b2lkIFdlYkNvbnRleHRNZW51UHJveHlRdDo6c2hvd0NvbnRleHRNZW51KGNv
bnN0IEludFBvaW50JiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JikKK1Bh
c3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eVF0PiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNy
ZWF0ZShRV0tQYWdlKiBwYWdlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudVByb3h5UXQocGFnZSkpOworfQorCit2b2lkIFdl
YkNvbnRleHRNZW51UHJveHlRdDo6c2hvd0NvbnRleHRNZW51KGNvbnN0IEludFBvaW50JiBwb3Np
dGlvbiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+JiBpdGVtcykKK3sKKyAg
ICBpZiAoUU1lbnUqIG1lbnUgPSBjcmVhdGVDb250ZXh0TWVudShpdGVtcykpIHsKKyAgICAgICAg
bWVudS0+bW92ZShwb3NpdGlvbik7CisgICAgICAgIGVtaXQgbV9wYWdlLT5zaG93Q29udGV4dE1l
bnUobWVudSk7CisgICAgfQogfQogCiB2b2lkIFdlYkNvbnRleHRNZW51UHJveHlRdDo6aGlkZUNv
bnRleHRNZW51KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitRTWVudSogV2ViQ29u
dGV4dE1lbnVQcm94eVF0OjpjcmVhdGVDb250ZXh0TWVudShjb25zdCBWZWN0b3I8V2ViQ29udGV4
dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKQoreworICAgIFFNZW51KiBtZW51ID0gbmV3IFFNZW51Owor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSA9IGl0ZW1zLmF0KGkpOworICAgICAgICBz
d2l0Y2ggKGl0ZW0udHlwZSgpKSB7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6Q2hlY2thYmxlQWN0
aW9uVHlwZTogLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgIGNhc2UgV2ViQ29yZTo6QWN0aW9u
VHlwZTogeworICAgICAgICAgICAgUVdLUGFnZTo6V2ViQWN0aW9uIGFjdGlvbiA9IHdlYkFjdGlv
bkZvckNvbnRleHRNZW51QWN0aW9uKGl0ZW0uYWN0aW9uKCkpOworICAgICAgICAgICAgUUFjdGlv
biogcXRBY3Rpb24gPSBtX3BhZ2UtPmFjdGlvbihhY3Rpb24pOworICAgICAgICAgICAgaWYgKHF0
QWN0aW9uKSB7CisgICAgICAgICAgICAgICAgcXRBY3Rpb24tPnNldEVuYWJsZWQoaXRlbS5lbmFi
bGVkKCkpOworICAgICAgICAgICAgICAgIHF0QWN0aW9uLT5zZXRDaGVja2VkKGl0ZW0uY2hlY2tl
ZCgpKTsKKyAgICAgICAgICAgICAgICBxdEFjdGlvbi0+c2V0Q2hlY2thYmxlKGl0ZW0udHlwZSgp
ID09IFdlYkNvcmU6OkNoZWNrYWJsZUFjdGlvblR5cGUpOworCisgICAgICAgICAgICAgICAgbWVu
dS0+YWRkQWN0aW9uKHF0QWN0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgV2ViQ29yZTo6U2VwYXJhdG9yVHlwZToKKyAgICAg
ICAgICAgIG1lbnUtPmFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgV2ViQ29yZTo6U3VibWVudVR5cGU6IHsKKyAgICAgICAgICAgIGlmIChRTWVudSAqc3Vi
TWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW0uc3VibWVudSgpKSkgeworICAgICAgICAgICAg
ICAgIHN1Yk1lbnUtPnNldFRpdGxlKGl0ZW0udGl0bGUoKSk7CisgICAgICAgICAgICAgICAgbWVu
dS0+YWRkQWN0aW9uKHN1Yk1lbnUtPm1lbnVBY3Rpb24oKSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBk
b24ndCBzaG93IHN1Yi1tZW51cyB3aXRoIGp1c3QgZGlzYWJsZWQgYWN0aW9ucworICAgIGlmICht
ZW51LT5pc0VtcHR5KCkpIHsKKyAgICAgICAgZGVsZXRlIG1lbnU7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyAgICBib29sIGFueUVuYWJsZWRBY3Rpb24gPSBmYWxzZTsKKyAgICBRTGlzdDxR
QWN0aW9uICo+IGFjdGlvbnMgPSBtZW51LT5hY3Rpb25zKCk7CisgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBhY3Rpb25zLmNvdW50KCk7ICsraSkgeworICAgICAgICBpZiAoYWN0aW9ucy5hdChpKS0+
aXNWaXNpYmxlKCkpCisgICAgICAgICAgICBhbnlFbmFibGVkQWN0aW9uIHw9IGFjdGlvbnMuYXQo
aSktPmlzRW5hYmxlZCgpOworICAgIH0KKyAgICBpZiAoIWFueUVuYWJsZWRBY3Rpb24pIHsKKyAg
ICAgICAgZGVsZXRlIG1lbnU7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVy
biBtZW51OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgKaW5kZXggMzgzOTkwZjY2MjIzZDQyMjNkODEzZGRh
MmM1OGEyNjNjOGVjZWFmZS4uNDM1MjA0ZmQ2M2Q1ODZjODljNzAwOTc2ZWU1NWRhNjJjYzc5NWZi
NSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0
LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgKQEAg
LTI5LDE3ICsyOSwyNSBAQAogCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgogCitj
bGFzcyBRTWVudTsKK2NsYXNzIFFXS1BhZ2U7CitjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1EYXRh
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVF0IDog
cHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYkNvbnRleHRNZW51UHJveHlRdD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQ29udGV4dE1lbnVQcm94eVF0PiBjcmVhdGUoUVdLUGFnZSopOwogCiBwcml2YXRlOgot
ICAgIFdlYkNvbnRleHRNZW51UHJveHlRdCgpOworICAgIFdlYkNvbnRleHRNZW51UHJveHlRdChR
V0tQYWdlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+Jik7CiAg
ICAgdmlydHVhbCB2b2lkIGhpZGVDb250ZXh0TWVudSgpOworCisgICAgUU1lbnUqIGNyZWF0ZUNv
bnRleHRNZW51KGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpOwor
CisgICAgUVdLUGFnZSogY29uc3QgbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77876</attachid>
            <date>2011-01-04 03:22:10 -0800</date>
            <delta_ts>2011-01-04 03:53:43 -0800</delta_ts>
            <desc>Kenneth, is that what you had in mind to find the correct view?</desc>
            <filename>bug-51825-20110104122728.patch</filename>
            <type>text/plain</type>
            <size>12316</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWUxZWQ1OGZkMmM2ZGZlYTg2YzY2NGZkYjI1NWIzMTkyMWJlNjU5NC4uNDdiNzc2NTZmYmMyM2Q4
Yjc3ZGFkMzc1YmY1YTA0M2FmMWMxMWExYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wMS0wMyAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gW1dLMl0gY3JlYXRlIGFu
IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbnRleHQgbWVudSBoYW5kbGluZyBmb3Ig
V2ViS2l0IDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUxODI1CisKKyAgICAgICAgSW1wbGVtZW50IGNvbnRleHRNZW51SXRlbVZlY3RvcigpIGZvciBR
dCwgdGhpcyBtZXRob2QgaXMgdXNlZCBpbiBXZWJLaXQgMiB0byBnZXQgdGhlCisgICAgICAgIHBs
YXRmb3JtIGluZGVwZW5kZW50IG1lbnUgaW5mb3JtYXRpb25zLgorCisgICAgICAgICogcGxhdGZv
cm0vcXQvQ29udGV4dE1lbnVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1WZWN0b3IpOgorCiAyMDExLTAxLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ29udGV4dE1lbnVRdC5jcHAKaW5kZXggYzg3NzY0MjU2MjAxMzcwMmU3NzZiZjhhMDdiZjdj
Zjc1YWZlNTlkMi4uNjFhYWI2ZGFkZDBiMTk4NzY5NmVmMmI5Y2EwOTMwYjcxOTFkNzFiOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db250ZXh0TWVudVF0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3F0L0NvbnRleHRNZW51UXQuY3BwCkBAIC03MywxMCArNzMsMTMgQEAgUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0
aW9uKCkKICAgICByZXR1cm4gUGxhdGZvcm1NZW51RGVzY3JpcHRpb24oKTsKIH0KIAotVmVjdG9y
PENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uKQorVmVjdG9yPENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKGNv
bnN0IFFMaXN0PENvbnRleHRNZW51SXRlbT4qIGl0ZW1zKQogewotICAgIC8vIEZJWE1FIC0gSW1w
bGVtZW50ICAgIAotICAgIHJldHVybiBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPigpOworICAgIGlu
dCBpdGVtQ291bnQgPSBpdGVtcy0+c2l6ZSgpOworICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+
IG1lbnVJdGVtVmVjdG9yKGl0ZW1Db3VudCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVt
Q291bnQ7ICsraSkKKyAgICAgICAgbWVudUl0ZW1WZWN0b3IuYXBwZW5kKGl0ZW1zLT5hdChpKSk7
CisgICAgcmV0dXJuIG1lbnVJdGVtVmVjdG9yOwogfQogCiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
biBwbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbihWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgbWVudUl0
ZW1WZWN0b3IpCmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IGViZjc3ZmRlMDA5M2NlNzFhNjc0ZGE4Y2U3NmI5MTBhY2ZlY2Y2MmEuLjg2MzJi
MzhlMDM4N2IzN2Y0MWMzZGEyMDllOGZlNDEwMWNiNmRmZGIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEt
MDEtMDMgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFtXSzJd
IGNyZWF0ZSBhbiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb250ZXh0IG1lbnUgaGFu
ZGxpbmcgZm9yIFdlYktpdCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MTgyNQorCisgICAgICAgIEltcGxlbWVudCB0aGUgbmVjZXNzYXJ5IG1ldGhv
ZHMgdG8gZ2V0IGEgYmFzaWMgY29udGV4dCBtZW51IHdvcmtpbmcgZm9yIFF0LgorCisgICAgICAg
IE9ubHkgNCBiYXNpYyBXZWJBY3Rpb24gaGF2ZSBiZWVuIGFkZGVkIG9uIHRoZSBVSVByb2Nlc3Mg
c2lkZTogYmFjaywgZm9yd2FyZCwgc3RvcCBhbmQgcmVsb2FkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuY3BwOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3
OjpRR3JhcGhpY3NXS1ZpZXcpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3OjpzaG93Q29udGV4
dE1lbnUpOgorICAgICAgICAoUUdyYXBoaWNzV0tWaWV3UHJpdmF0ZTo6UUdyYXBoaWNzV0tWaWV3
UHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFn
ZVByaXZhdGU6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXdrcGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVBy
b3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0Ojp3ZWJBY3Rpb25Gb3JDb250ZXh0TWVudUFjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlRdDo6V2ViQ29udGV4dE1l
bnVQcm94eVF0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5UXQ6OnNob3dDb250ZXh0
TWVudSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlRdDo6aGlkZUNvbnRl
eHRNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0OjpjcmVhdGVD
b250ZXh0TWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlR
dC5oOgorCiAyMDExLTAxLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnViYmVyLXN0YW1wZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcAppbmRleCBlOThkOGRiZmMwMjAzMGUzN2ViN2Qx
NzExYzkyOTM1YzdkMTU4MTU0Li43ODc2NjE0MGExYTlmOGJiOGNiNzNmZWRmZTE5NDY3MTI5YTc5
OWYyIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3
LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcApA
QCAtMjgsOSArMjgsMTEgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJxd2tw
YWdlLmgiCiAjaW5jbHVkZSAicXdrcGFnZV9wLmgiCisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgog
I2luY2x1ZGUgPFFDdXJzb3I+CiAjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50Pgog
I2luY2x1ZGUgPFFHcmFwaGljc1ZpZXc+CisjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UVBh
aW50ZXI+CiAjaW5jbHVkZSA8UVNjcm9sbEJhcj4KICNpbmNsdWRlIDxRU3R5bGVPcHRpb25HcmFw
aGljc0l0ZW0+CkBAIC01Miw2ICs1NCw3IEBAIHN0cnVjdCBRR3JhcGhpY3NXS1ZpZXdQcml2YXRl
IHsKIAogICAgIFFHcmFwaGljc1dLVmlldyogcTsKICAgICBRV0tQYWdlKiBwYWdlOworICAgIFFN
ZW51KiBhY3RpdmVNZW51OwogICAgIFJ1bkxvb3A6OlRpbWVyPFFHcmFwaGljc1dLVmlld1ByaXZh
dGU+IG1fc2NhbGVDb21taXRUaW1lcjsKICAgICBib29sIG1faXNDaGFuZ2luZ1NjYWxlOwogfTsK
QEAgLTg5LDYgKzkyLDcgQEAgUUdyYXBoaWNzV0tWaWV3OjpRR3JhcGhpY3NXS1ZpZXcoUVdLQ29u
dGV4dCogY29udGV4dCwgQmFja2luZ1N0b3JlVHlwZSBiYWNraW5nU3QKICAgICBjb25uZWN0KGQt
PnBhZ2UsIFNJR05BTCh1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmKSksIHRoaXMsIFNJR05BTCh1cmxD
aGFuZ2VkKGNvbnN0IFFVcmwmKSkpOwogICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKGN1cnNv
ckNoYW5nZWQoY29uc3QgUUN1cnNvciYpKSwgdGhpcywgU0xPVCh1cGRhdGVDdXJzb3IoY29uc3Qg
UUN1cnNvciYpKSk7CiAgICAgY29ubmVjdChkLT5wYWdlLCBTSUdOQUwoZm9jdXNOZXh0UHJldkNo
aWxkKGJvb2wpKSwgdGhpcywgU0xPVChmb2N1c05leHRQcmV2Q2hpbGRDYWxsYmFjayhib29sKSkp
OworICAgIGNvbm5lY3QoZC0+cGFnZSwgU0lHTkFMKHNob3dDb250ZXh0TWVudShRTWVudSopKSwg
dGhpcywgU0xPVChzaG93Q29udGV4dE1lbnUoUU1lbnUqKSkpOwogfQogCiBRR3JhcGhpY3NXS1Zp
ZXc6On5RR3JhcGhpY3NXS1ZpZXcoKQpAQCAtMzIyLDYgKzMyNiwzMyBAQCB2b2lkIFFHcmFwaGlj
c1dLVmlldzo6Zm9jdXNPdXRFdmVudChRRm9jdXNFdmVudCopCiAgICAgcGFnZSgpLT5kLT5wYWdl
LT5zZXRBY3RpdmUoZmFsc2UpOwogfQogCit2b2lkIFFHcmFwaGljc1dLVmlldzo6c2hvd0NvbnRl
eHRNZW51KFFNZW51KiBtZW51KQoreworICAgIC8vIFJlbW92ZSB0aGUgYWN0aXZlIG1lbnUgaW4g
Y2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0d2ljZS4KKyAgICBpZiAoZC0+YWN0aXZlTWVu
dSkKKyAgICAgICAgZC0+YWN0aXZlTWVudS0+aGlkZSgpOworCisgICAgZC0+YWN0aXZlTWVudSA9
IG1lbnU7CisKKyAgICBRV2lkZ2V0KiB2aWV3ID0gMDsKKyAgICBpZiAoUUdyYXBoaWNzU2NlbmUq
IG15U2NlbmUgPSBzY2VuZSgpKSB7CisgICAgICAgIGNvbnN0IFFMaXN0PFFHcmFwaGljc1ZpZXcq
PiB2aWV3cyA9IG15U2NlbmUtPnZpZXdzKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB2aWV3cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHZpZXdzLmF0KGkpID09
IFFBcHBsaWNhdGlvbjo6Zm9jdXNXaWRnZXQoKSkgeworICAgICAgICAgICAgICAgIHZpZXcgPSB2
aWV3cy5hdChpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBpZiAoIXZpZXcpCisgICAgICAgICAgICB2aWV3ID0gdmlld3MudmFsdWUo
MCwgMCk7CisgICAgfQorICAgIGlmICh2aWV3KQorICAgICAgICBtZW51LT5zZXRQYXJlbnQodmll
dywgbWVudS0+d2luZG93RmxhZ3MoKSk7CisgICAgbWVudS0+ZXhlYyh2aWV3LT5tYXBUb0dsb2Jh
bChtZW51LT5wb3MoKSkpOworICAgIGlmIChkLT5hY3RpdmVNZW51ID09IG1lbnUpCisgICAgICAg
IGQtPmFjdGl2ZU1lbnUgPSAwOworfQorCiB2b2lkIFFHcmFwaGljc1dLVmlldzo6dGFrZVNuYXBz
aG90KGNvbnN0IFFTaXplJiBzaXplLCBjb25zdCBRUmVjdCYgY29udGVudHNSZWN0KQogewogI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpAQCAtMzM1LDYgKzM2Niw3IEBAIHZvaWQgUUdy
YXBoaWNzV0tWaWV3Ojp0YWtlU25hcHNob3QoY29uc3QgUVNpemUmIHNpemUsIGNvbnN0IFFSZWN0
JiBjb250ZW50c1JlY3QpCiAKIFFHcmFwaGljc1dLVmlld1ByaXZhdGU6OlFHcmFwaGljc1dLVmll
d1ByaXZhdGUoUUdyYXBoaWNzV0tWaWV3KiB2aWV3KQogICAgIDogcSh2aWV3KQorICAgICwgYWN0
aXZlTWVudSgwKQogICAgICwgbV9zY2FsZUNvbW1pdFRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwg
dGhpcywgJlFHcmFwaGljc1dLVmlld1ByaXZhdGU6OmNvbW1pdFNjYWxlKQogICAgICwgbV9pc0No
YW5naW5nU2NhbGUoZmFsc2UpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcWdyYXBoaWNzd2t2aWV3LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNz
d2t2aWV3LmgKaW5kZXggNmY0MDgxZWZjNmY0MWFmNTk2MzljZjlmNjhlYTFmMTE0ODk1NGVhZS4u
Y2FmOGUwZGVmMzIzNzg3OWVmMTI3ZjU3MzY3NjMwNWRhMDkwMzc0ZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FncmFwaGljc3drdmlldy5oCisrKyBiL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcuaApAQCAtODgsNiArODgsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzSW5FdmVudChRRm9jdXNFdmVudCopOwogICAgIHZp
cnR1YWwgdm9pZCBmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50Kik7CiAKK3ByaXZhdGUgUV9TTE9U
UzoKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShRTWVudSopOworCiBwcml2YXRlOgogICAgIFFf
UFJJVkFURV9TTE9UKGQsIHZvaWQgb25TY2FsZUNoYW5nZWQoKSk7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlLmNwcAppbmRleCA0YjUyNmEwYTg4NWIyZGMzNmUwZTg5NjM2YThjNzY0Yzg0
ZDVjOGU1Li5lYTdiM2FiMWZkYmUxOTc0MDc5YjgwY2M2MWIxZTNhMDc5MDc3MWEzIDEwMDY0NAot
LS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgUGFzc1JlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gUVdLUGFnZVByaXZhdGU6OmNyZWF0ZVBvcHVwTWVudVByb3h5
KFdlYlBhZ2VQcm94eSoKIAogUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBRV0tQYWdl
UHJpdmF0ZTo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKQogewotICAgIHJl
dHVybiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZSgpOworICAgIHJldHVybiBXZWJDb250
ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZShxKTsKIH0KIAogdm9pZCBRV0tQYWdlUHJpdmF0ZTo6c2V0
RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sIGZhZGVPdXQpCmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuaAppbmRleCA2NDVjODQ1Yjk4NmQzNzBlNzRiNGU1ZjEx
NDcwZDMxZmMzNGFhZGZjLi4yYzAxZjhkYTNmYzVmOWE0NWQyZGUxOTZmMTI4OWU4ZTVlODU3NzY3
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oCisrKyBiL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBwdWJs
aWM6CiAgICAgUV9TSUdOQUwgdm9pZCB3aW5kb3dDbG9zZVJlcXVlc3RlZCgpOwogICAgIFFfU0lH
TkFMIHZvaWQgem9vbWFibGVBcmVhRm91bmQoY29uc3QgUVJlY3QmKTsKICAgICBRX1NJR05BTCB2
b2lkIGZvY3VzTmV4dFByZXZDaGlsZChib29sKTsKKyAgICBRX1NJR05BTCB2b2lkIHNob3dDb250
ZXh0TWVudShRTWVudSopOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB0aW1lckV2ZW50KFFUaW1l
ckV2ZW50Kik7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVu
dVByb3h5UXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0
LmNwcAppbmRleCAzZjJlNDdlNTVmOWZkZmM5YTQ4MTc5ZjhhNDJmZjBmMTBmZTdlMWY2Li5mMDVk
ZGU2YTZhNWRhYWJkMjA3NzQzZmNkMGY5NGE5NGQyMjI4YTdjIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuY3BwCisrKyBiL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAKQEAgLTI2LDI5ICsyNiwxMDMgQEAK
IAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHlRdC5oIgogCi0jaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxJbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuaD4KKyNpbmNsdWRlIDxxbWVudS5oPgorI2luY2x1ZGUgPHF3a3BhZ2UuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1pbmxp
bmUgV2ViQ29udGV4dE1lbnVQcm94eVF0OjpXZWJDb250ZXh0TWVudVByb3h5UXQoKQorc3RhdGlj
IFFXS1BhZ2U6OldlYkFjdGlvbiB3ZWJBY3Rpb25Gb3JDb250ZXh0TWVudUFjdGlvbihXZWJDb3Jl
OjpDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiB7CisgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAg
ICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0dvQmFjazoKKyAgICAgICAgcmV0dXJu
IFFXS1BhZ2U6OkJhY2s7CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdHb0Zv
cndhcmQ6CisgICAgICAgIHJldHVybiBRV0tQYWdlOjpGb3J3YXJkOworICAgIGNhc2UgV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtVGFnU3RvcDoKKyAgICAgICAgcmV0dXJuIFFXS1BhZ2U6OlN0b3A7
CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQ6CisgICAgICAgIHJl
dHVybiBRV0tQYWdlOjpSZWxvYWQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIHJldHVybiBRV0tQYWdlOjpOb1dlYkFjdGlvbjsKIH0KIAotUGFzc1JlZlB0cjxXZWJD
b250ZXh0TWVudVByb3h5UXQ+IFdlYkNvbnRleHRNZW51UHJveHlRdDo6Y3JlYXRlKCkKK1dlYkNv
bnRleHRNZW51UHJveHlRdDo6V2ViQ29udGV4dE1lbnVQcm94eVF0KFFXS1BhZ2UqIHBhZ2UpCisg
ICAgOiBtX3BhZ2UocGFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRN
ZW51UHJveHlRdCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dE1lbnVQcm94eVF0OjpzaG93Q29udGV4
dE1lbnUoY29uc3QgSW50UG9pbnQmLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mKQorUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5UXQ+IFdlYkNvbnRleHRNZW51UHJv
eHlRdDo6Y3JlYXRlKFFXS1BhZ2UqIHBhZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRNZW51UHJveHlRdChwYWdlKSk7Cit9CisK
K3ZvaWQgV2ViQ29udGV4dE1lbnVQcm94eVF0OjpzaG93Q29udGV4dE1lbnUoY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1z
KQoreworICAgIGlmIChRTWVudSogbWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW1zKSkgewor
ICAgICAgICBtZW51LT5tb3ZlKHBvc2l0aW9uKTsKKyAgICAgICAgZW1pdCBtX3BhZ2UtPnNob3dD
b250ZXh0TWVudShtZW51KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViQ29udGV4dE1lbnVQcm94eVF0
OjpoaWRlQ29udGV4dE1lbnUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1FNZW51
KiBXZWJDb250ZXh0TWVudVByb3h5UXQ6OmNyZWF0ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpCit7CisgICAgUU1lbnUqIG1lbnUgPSBuZXcg
UU1lbnU7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgeworICAg
ICAgICBjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtID0gaXRlbXMuYXQoaSk7Cisg
ICAgICAgIHN3aXRjaCAoaXRlbS50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpDaGVj
a2FibGVBY3Rpb25UeXBlOiAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSBXZWJDb3Jl
OjpBY3Rpb25UeXBlOiB7CisgICAgICAgICAgICBRV0tQYWdlOjpXZWJBY3Rpb24gYWN0aW9uID0g
d2ViQWN0aW9uRm9yQ29udGV4dE1lbnVBY3Rpb24oaXRlbS5hY3Rpb24oKSk7CisgICAgICAgICAg
ICBRQWN0aW9uKiBxdEFjdGlvbiA9IG1fcGFnZS0+YWN0aW9uKGFjdGlvbik7CisgICAgICAgICAg
ICBpZiAocXRBY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBxdEFjdGlvbi0+c2V0RW5hYmxlZChp
dGVtLmVuYWJsZWQoKSk7CisgICAgICAgICAgICAgICAgcXRBY3Rpb24tPnNldENoZWNrZWQoaXRl
bS5jaGVja2VkKCkpOworICAgICAgICAgICAgICAgIHF0QWN0aW9uLT5zZXRDaGVja2FibGUoaXRl
bS50eXBlKCkgPT0gV2ViQ29yZTo6Q2hlY2thYmxlQWN0aW9uVHlwZSk7CisKKyAgICAgICAgICAg
ICAgICBtZW51LT5hZGRBY3Rpb24ocXRBY3Rpb24pOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBXZWJDb3JlOjpTZXBhcmF0b3JUeXBl
OgorICAgICAgICAgICAgbWVudS0+YWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpTdWJtZW51VHlwZToKKyAgICAgICAgICAgIGlmIChRTWVu
dSAqc3ViTWVudSA9IGNyZWF0ZUNvbnRleHRNZW51KGl0ZW0uc3VibWVudSgpKSkgeworICAgICAg
ICAgICAgICAgIHN1Yk1lbnUtPnNldFRpdGxlKGl0ZW0udGl0bGUoKSk7CisgICAgICAgICAgICAg
ICAgbWVudS0+YWRkQWN0aW9uKHN1Yk1lbnUtPm1lbnVBY3Rpb24oKSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRG8gbm90
IHNob3cgc3ViLW1lbnVzIHdpdGgganVzdCBkaXNhYmxlZCBhY3Rpb25zLgorICAgIGlmIChtZW51
LT5pc0VtcHR5KCkpIHsKKyAgICAgICAgZGVsZXRlIG1lbnU7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKyAgICBib29sIGlzQW55QWN0aW9uRW5hYmxlZCA9IGZhbHNlOworICAgIFFMaXN0PFFB
Y3Rpb24gKj4gYWN0aW9ucyA9IG1lbnUtPmFjdGlvbnMoKTsKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IGFjdGlvbnMuY291bnQoKTsgKytpKSB7CisgICAgICAgIGlmIChhY3Rpb25zLmF0KGkpLT5p
c1Zpc2libGUoKSkKKyAgICAgICAgICAgIGlzQW55QWN0aW9uRW5hYmxlZCB8PSBhY3Rpb25zLmF0
KGkpLT5pc0VuYWJsZWQoKTsKKyAgICB9CisgICAgaWYgKCFpc0FueUFjdGlvbkVuYWJsZWQpIHsK
KyAgICAgICAgZGVsZXRlIG1lbnU7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJl
dHVybiBtZW51OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIGIvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgKaW5kZXggMzgzOTkwZjY2MjIzZDQyMjNkODEz
ZGRhMmM1OGEyNjNjOGVjZWFmZS4uNDM1MjA0ZmQ2M2Q1ODZjODljNzAwOTc2ZWU1NWRhNjJjYzc5
NWZiNSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94
eVF0LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmgK
QEAgLTI5LDE3ICsyOSwyNSBAQAogCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eS5oIgog
CitjbGFzcyBRTWVudTsKK2NsYXNzIFFXS1BhZ2U7CitjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW1E
YXRhOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eVF0
IDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHlRdD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eVF0PiBjcmVhdGUoUVdLUGFnZSopOwogCiBwcml2YXRl
OgotICAgIFdlYkNvbnRleHRNZW51UHJveHlRdCgpOworICAgIFdlYkNvbnRleHRNZW51UHJveHlR
dChRV0tQYWdlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRNZW51SXRlbURhdGE+Jik7
CiAgICAgdmlydHVhbCB2b2lkIGhpZGVDb250ZXh0TWVudSgpOworCisgICAgUU1lbnUqIGNyZWF0
ZUNvbnRleHRNZW51KGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMp
OworCisgICAgUVdLUGFnZSogY29uc3QgbV9wYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>